Необходимо из потока обновлять контролы(например ProgressBar) на форме в другом потоке.
Предпологается передавать в этот поток некоторые данные из этой формы.Как это сделать?
И как поток может известить форму,в которой он запущён,что он завершил свой выполнение?
Здравствуйте, Minos_9, Вы писали:
M_>Необходимо из потока обновлять контролы(например ProgressBar) на форме в другом потоке.
M_>Предпологается передавать в этот поток некоторые данные из этой формы.Как это сделать?
M_>И как поток может известить форму,в которой он запущён,что он завершил свой выполнение?
Ответ на этот вопрос можно найти в статье
Простая и безопасная реализация многопоточности в Windows Forms. Часть 1Автор(ы): Крис Селлз (Chris Sells)
Дата: 05.06.2003
В статье рассматривается использование многопоточности в приложениях Windows Forms на примере отображения хода длительной операции с использованием асинхронного делегата для запуска рабочего потока и метода Invoke для главной формы.
. Где-то на
www.gotdotnet.ruя видел еще вторую и третью части — рекомендую найти.
Здравствуйте, Minos_9, Вы писали:
M_>Необходимо из потока обновлять контролы(например ProgressBar) на форме в другом потоке.
delegate UpdateSomeProgressBarDelegate(int newValue);
[...]
void UpdateSomeProgressBar(int newValue)
{
if (progressBar.InvokeRequired)
{
progressBar.Invoke(new UpdateSomeProgressBarDelegate(UpdateSomeProgressBar),
new object[] { newValue });
}
else
{
progressBar.Value = newValue;
}
}
M_>Предпологается передавать в этот поток некоторые данные из этой формы.Как это сделать?
class MyThreadInfoClass
{
private int data1;
private string data2;
private object[] otherData;
MyThreadInfo(int data1, string data2, object[] otherData) {
}
}
M_>И как поток может известить форму,в которой он запущён,что он завершил свой выполнение?... << RSDN@Home 1.1.3 stable >>