| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > Как реализованы события - это отдеьные нитки? |
| Автор: semibug 18.9.2010, 15:31 | ||
Запускаю калькулятор
После запуска выполняю какие-то другие действия, условно бесконечный цикл. Вопрос: по завершении работы калькулятора будет создан новый поток для выполнения prog_Exit? |
| Автор: Kaerus 18.9.2010, 16:19 | ||
В этом конкретном случае событие Process.Exited вызывается в другом потоке (взятом из системного пула потоков)
А обычно новый поток не создается, к примеру события на форме выполняются все в одном потоке |
| Автор: semibug 18.9.2010, 17:44 |
| Т.е. в обработчике события завершения необходимо обеспечить синхронизацию при доступе к данным? Например в основном потоке идет заполнение массива строк, а в обработчике выбирается последний элемент, не может быть ситуации, когда массив был в промежуточном состоянии в момент обращения в событии завершения? |
| Автор: Kaerus 18.9.2010, 19:34 |
| Опять так в этом конкретном случае - ДА |
| Автор: semibug 18.9.2010, 19:47 |
| Kaerus, ок, спасибо И смежный вопрос, если запустить процесс, с помощью System.Diagnostics.Process, а затем закончить свое приложение, что произойдет с запущенным процессом (он получает сообщение на закрытие/убивается/еще_что-то) ? |
| Автор: Kaerus 19.9.2010, 01:42 | ||
С помощью этого кода можно получить сообщение о закрытие родителя (проверил работает)
Идея взята http://stackoverflow.com/questions/394816/how-to-get-parent-process-in-net-in-managed-way |