Показать сообщение отдельно

  #367  
Старый 04.02.2010, 18:21
W!z@rD
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
С нами: 10653446

Репутация: 836


По умолчанию

Цитата:
Сообщение от Tigger  
Помогите с потокобезопасным кодом, пожалуйста.
Имеется рабочий класс:
public delegate LogDelegate(string text);
public event LogDelegate Log;

И в этом классе часто вызывается этот лог

класс mainForm:
WorkClass.Log += new WorkClass.WriteLogDelegate(_work_class_log);

void _work_class_log(string text)
{
logTextBox.AppendText(text + "\r\n");
}
.

В этом же классе (mainForm) есть код, который выполняется в фоновом потоке. Но если вызывать там же и WorkClass.Log += new WorkClass.WriteLogDelegate(_work_class_log);, то ругается, что в разных потоках, если в любом другом месте, то ругается, что не задана ссылка. Пробовал через Invoke, но не понял какой и как делешат туда писать...
void _work_class_log(string text)
{
if (InvokeRequed)
{
BeginInvoke(new MethodInvoker(() => textBox1.AppendText(text)))
}
else
{
textBox1.AppendText(text)
}
}

Типа того.
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
 
Ответить с цитированием