У меня есть метод, который работает асинхронно с BackgroundWorker. Внутри этого метода некоторый код петли бесконечно с интервалом в 1000 мс.C# BackgroundWorker вопрос
Внутри этого кода, в зависимости от какого-либо значения, отправляется событие. Насколько я понял, это событие работает в том же потоке, что и код, из которого он был поднят.
Но я хочу, чтобы это событие выполнялось в том же потоке, что и объект, который содержит BackgroundWorker. Как это сделать?
@Thomas: лучше всего начать отдельный поток для длительной работы (или бесконечного в вашем случае) процессов, а не использовать пул потоков/фоновый рабочий. Как сказал Адам, таймер может быть лучше подходит. –
Это не реально, если вы хотите, чтобы поток ваших объектов продолжал работать. Что вы можете сделать, это использовать AutoResetEvent или ManualResetEvent, чтобы вызвать основной поток, чтобы снова начать работать или постоянно проверять volatile bool, чтобы увидеть, выполнил ли фоновый рабочий объект свою задачу. – Will