вопрос по многопоточности c#
От: rainbow_demon  
Дата: 08.12.06 13:51
Оценка:
ДД. всем. интересует вопрос по многопоточности в .net (C# в частности).
я реализую .net forms (GUI) приложение, в котором при старте формы стартует поток, в котором происходит чего-то там выполнение, при том в цикле. метод, выполняемый в отдельном потоке так же является методом формы.
Хочу, чтобы при изменении итерации в этом отдельном потоке на форме изменялось значение прогрессбара.
Кроме того, хочу, чтобы при нажатии какой-то кнопки на форме поток прерывался (грамотно, т.е. не абы-где, а после окончания итерации). Для этого я делаю следующее:
я добавляю в форму булевский флажок, выставляю его в false. ПРи нажатии кнопки я взвожу этот флажок, значение которого проверяется в цикле потока перед выполнением очередной итерации. из этого же потока я напрямую меняю значение прогрессбара с выполнением очередной итерации. так вот вопрос: надо ли использовать что-то типа критических секций или что-то еще для обращения и изменения этого флажка и надо ли использовать критич. секции для обновления значения прогрессбара?

код не привожу, думаю и так понятно объяснил....
Re: вопрос по многопоточности c#
От: AK85 Беларусь  
Дата: 08.12.06 13:55
Оценка:
Здравствуйте, rainbow_demon, Вы писали:

булевский флажок сделать volatile, а обновление прогресс-бара через Invoke.
Re: вопрос по многопоточности c#
От: AlexDav Россия  
Дата: 08.12.06 13:58
Оценка: +1
это для вас здесь
Автор(ы): Крис Селлз (Chris Sells)
Дата: 05.06.2003
В статье рассматривается использование многопоточности в приложениях Windows Forms на примере отображения хода длительной операции с использованием асинхронного делегата для запуска рабочего потока и метода Invoke для главной формы.
Re[2]: вопрос по многопоточности c#
От: rainbow_demon  
Дата: 08.12.06 15:13
Оценка:
Здравствуйте, AlexDav, Вы писали:

AD>это для вас здесь
Автор(ы): Крис Селлз (Chris Sells)
Дата: 05.06.2003
В статье рассматривается использование многопоточности в приложениях Windows Forms на примере отображения хода длительной операции с использованием асинхронного делегата для запуска рабочего потока и метода Invoke для главной формы.



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