Укрощение строптивого BackgroundWorker
От: user485  
Дата: 20.10.11 10:43
Оценка:
Возникла такая проблема. Время от времени, BackgroundWorker.RunWorkerCompleted вызывается не из потока, который создал объект (как должно быть), а из других потоков.
Тестовый код такой:

Trace.WriteLine(Thread.CurrentThread.ManagedThreadId);
var worker = new BackgroundWorker();
worker.DoWork += (s, args) => Trace.WriteLine(Thread.CurrentThread.ManagedThreadId);
worker.RunWorkerCompleted += (s, args) => Trace.WriteLine(Thread.CurrentThread.ManagedThreadId);
worker.RunWorkerAsync();


Выдает например такую фигню: 10 6 11
(должно быть 10 6 10)

Есть идеи, в чем причина?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.