Передача параметров в создаваемый поток
От: Minos_9  
Дата: 09.05.04 18:09
Оценка:
Необходимо из потока обновлять контролы(например ProgressBar) на форме в другом потоке.
Предпологается передавать в этот поток некоторые данные из этой формы.Как это сделать?
И как поток может известить форму,в которой он запущён,что он завершил свой выполнение?
Re: Передача параметров в создаваемый поток
От: Yuri Россия http://spbdetails.ru
Дата: 09.05.04 20:09
Оценка:
Здравствуйте, Minos_9, Вы писали:

M_>Необходимо из потока обновлять контролы(например ProgressBar) на форме в другом потоке.

M_>Предпологается передавать в этот поток некоторые данные из этой формы.Как это сделать?
M_>И как поток может известить форму,в которой он запущён,что он завершил свой выполнение?

Ответ на этот вопрос можно найти в статье Простая и безопасная реализация многопоточности в Windows Forms. Часть 1
Автор(ы): Крис Селлз (Chris Sells)
Дата: 05.06.2003
В статье рассматривается использование многопоточности в приложениях Windows Forms на примере отображения хода длительной операции с использованием асинхронного делегата для запуска рабочего потока и метода Invoke для главной формы.
. Где-то на www.gotdotnet.ruя видел еще вторую и третью части — рекомендую найти.
Take it easy.
Re: Передача параметров в создаваемый поток
От: kuj  
Дата: 09.05.04 22:21
Оценка:
Здравствуйте, 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 >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.