
04.02.2010, 18:21
|
|
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...
|
|
|