|
Запуск иного приложения с ожиданием завершения. Эквивалентны ли 2 кода?
|
|||
---|---|---|---|
#18+
Первый: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Второй Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Используется в частности когда надо запустить какую-нибудь c++ утилиту. Я при написании приложения (считай готово) широко использовал первый вариант, ибо ".Net" блин. И все было замечательно, но рискнул сегодня испытать на 10-ке (на 8.1 проблем не было). ShellAndContinueNet включил тормоза: секундная операция может висеть минуту (не сама операция, а ожидание понимания что она завершилась). Второй (ShellAndContinue)- летает на тех же операциях. Я думаю просто тупо код внутри ShellAndContinueNet заменить на код из ShellAndContinue и перекомпилировать все где это используется. Вопрос: коды полностью эквивалентны (надо запустить AppToRun и тупо дождаться завершения)? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2015, 17:36 |
|
Запуск иного приложения с ожиданием завершения. Эквивалентны ли 2 кода?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2015, 15:16 |
|
Запуск иного приложения с ожиданием завершения. Эквивалентны ли 2 кода?
|
|||
---|---|---|---|
#18+
Алексей К Process.Exited - событие Судя по всему ты предложил третий вариант на твой взгляд более грамотный (с чем спорить не буду). Но и не воспользуюсь (в готовом приложении с годами проверенным вторым вариантом, пусть даже он и грубоват). Вообще первый вариант с Do While Not MyProcess.HasExited беспроблемно работает и на 10-ке в большинстве случаев. "Подвис" с первым вариантом возникает грубо тогда, когда приложение 1 (.Net) запускает второй экземпляр себя-же через ShellAndContinueNet(с параметром с целью сделать какое-то определенное действо), а этот второй экземпляр через ту же функцию ShellAndContinueNet запускает приложение 2 (в моем случае не .Net). Короче первый экземпляр ждет второй экземпляр, а второй ждет приложение 2 по тому же принципу. И на 10-ке здесь с большой вероятностью "подвис", хотя на 8.1 ничего подобного не наблюдалось. Подозреваю причина в .Net реализации Process, и в сложном частном случае оно споткнулось об новую OS. Короче, я заменил везде код ShellAndContinueNet на код ShellAndContinue и проблема больше не вылазит. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2015, 08:30 |
|
Запуск иного приложения с ожиданием завершения. Эквивалентны ли 2 кода?
|
|||
---|---|---|---|
#18+
Дмитрий77Но и не воспользуюсь (в готовом приложении с годами проверенным вторым вариантом, пусть даже он и грубоват).Зря. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2015, 09:06 |
|
Запуск иного приложения с ожиданием завершения. Эквивалентны ли 2 кода?
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2015, 09:45 |
|
Запуск иного приложения с ожиданием завершения. Эквивалентны ли 2 кода?
|
|||
---|---|---|---|
#18+
Алексей КЗря. Зря не зря, но по-любому то что ты написал, относится к .Net 4.5. А у меня все .Net -файлы задублированы .Net4.5/.Net2.0 (т.е. прога на XP/2003 устанавливается как .Net 2.0, а на >=Vista как .Net 4.5, ничего стратегически лучшего для обеспечения работы .Net проги на всех ос я не придумал). Так что здесь без вариантов. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2015, 16:18 |
|
Запуск иного приложения с ожиданием завершения. Эквивалентны ли 2 кода?
|
|||
---|---|---|---|
#18+
Дмитрий77, ну напиши без await, через Task.ContinueWith. Будет работать с .Net 4 и старше, что соответствует WinXP SP3 и старше. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2015, 16:29 |
|
Запуск иного приложения с ожиданием завершения. Эквивалентны ли 2 кода?
|
|||
---|---|---|---|
#18+
Алексей К, Слушай, ну я согласен с тобой. Нет времени спорить. Просто ShellAndContinue железно работал еще в VB6 (где всего "этого" не было), проект очень большой, под .Net уже переделан и именно как я сказал (.Net2.0/.Net4.5 автовыбором в зависимости от ОС, выбирается инсталлятором, без .Net4.0 который типа работает на XP). Я итак сутки потратил чтоб все exe перекомпилировать со старой версией ф-ции и хотяб поверхностно протестировать, что ничего не глюкнуло. Ну, заодно манифесты под Win10 во все файлы добавил. И не заметил бы этого глюка, если б не догадался проверить на Win10 перед релизом (искренне считал что Win8.1==Win10 ан нет). Мне счас задача проект выпустить, а не Task-философией заниматься. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2015, 17:32 |
|
|
start [/forum/topic.php?fid=20&msg=39048657&tid=1401218]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 318ms |
total: | 444ms |
0 / 0 |