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