потокобезопасность в GUI
От: LoparevSV Россия  
Дата: 28.07.08 04:46
Оценка:
Подскажите, пожулайста, вариант решения следующей проблемы.

Есть класс, в котором срабатывает событие, необходимо на форме обновить GUI, например так:

private void MainForm_Load(object sender, EventArgs e)
{
    MyClass class = new MyClass();
    class.MyEvent += new MyEventHandler(class_MyEvent);

    ...
}

void class_MyEvent()
{
    label1.Text = "text";
}


во время срабатывания события происходит эксепшн, что я пытаюсь изменить label1 из другого потока.
Вижу только такое решение, с использованием таймера:

private bool newData = false;

...

void class_MyEvent()
{
    newData = true;
}

private void timer1_Tick(object sender, EventArgs e)
{
    if (newData)
    {
        newData = false;
        label2.Text += "text";
    }
}


Подскажите более правильное и красивое решение

28.07.08 11:53: Перенесено модератором из '.NET' — AndrewVK
потокобезопасность gui .net c#
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.