Здравствуйте, AlexNek, Вы писали:
AN>Как бороться?
ProgressWorker.Run — асинхронный метод. Он вызывается
параллельно с основным потоком.
В данном коде подразумевается, что будет выполнена реструктуризация, а затем основной поток продолжит выполнение. А на самом деле поток реструктуризации и основной поток работают одновременно. Кто-кого из этих потоков обгонит — не известно.
Вариантов несколько.
Первый — убрать асинхронность (ProgressWorker.Run), т.е. пустить синхронизацию в основном потоке.
Второй — синхронизировать два потока между собой. Я приводил код в
[url=http://rsdn.ru/Forum/Message.aspx?mid=4282418&only=1]Re: Ошибки первого запускаАвтор: Буравчик
Дата: 24.05.11
[/url]. Этот же код сейчас в репозитории Януса.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>