Код: Выделить всё
//***** начало процедуры ******
this.Invoke((MethodInvoker)delegate {
//тут твой код
});
//***** окончание процедуры ******
Код: Выделить всё
//***** начало процедуры ******
this.Invoke((MethodInvoker)delegate {
//тут твой код
});
//***** окончание процедуры ******
Ну вот упрощенный пример:Bmax77 писал(а):А можно попадробней, в какую процедуру это вставлять
и "тут твой код"
код чего, обработчика порта?
Код: Выделить всё
private bool _connected; //определение необходимости работы потока
private BackgroundWorker _theads; //сам поток
//событие кнопки запуска отдельного потока
private void btStart_Click(object sender, EventArgs e)
{
_connected = true;
//Создаем поток, и подключаем к нему процедуру
_theads = new BackgroundWorker();
_theads.DoWork += TheadsStart;
//Запустим поток
_theads.RunWorkerAsync();
}
//событие остановки потока
private void btStop_Click(object sender, EventArgs e)
{
_connected = false;
}
//отдельный поток
private void TheadsStart(object sender, DoWorkEventArgs e)
{
while (_connected)
{
this.Invoke((MethodInvoker)delegate {
//***** в этих пределах возможен доступ к элементам формы, хотя и нежелателен****
label1.text = "текущее время:" + datetime;
//********
});
}
}