У меня есть стилистический вопрос о выборе реализации фонового потока, который я должен использовать в приложении Windows Form. В настоящее время у меня есть BackgroundWorker
в форме, которая имеет бесконечный цикл (while(true))
. В этом цикле я использую WaitHandle.WaitAny
, чтобы поток дремал, пока не произойдет что-то интересное. Один из дескрипторов события, которого я жду, - это событие "StopThread
", чтобы я мог выйти из цикла. Это событие сигнализируется, когда из моего переопределенного Form.Dispose()
.
Я где-то читал, что BackgroundWorker
действительно предназначен для операций, с которыми вы не хотите связывать пользовательский интерфейс и которые имеют конечный конец - например, загрузка файла или обработка последовательности элементов. В этом случае «конец» неизвестен и только тогда, когда окно закрыто. Поэтому для меня было бы более уместным использовать фоновый поток вместо BackgroundWorker
для этой цели?