Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
[C#] - Обращение к контролу из другого потока |
Философия, технологии, алгоритмы! |
|
Опции темы |
16.12.2009, 10:47 | #1 |
Форумец
Сообщений: 43
Регистрация: 20.05.2008
Не в сети |
[C#] - Обращение к контролу из другого потока
Доброго времени суток. Появилась нужда обратиться к контролу из другого потока, что насколько мне известно делается посредством делегата. Попробовал сделать по примеру в МСДН, сработать сработало, а сам факт обращения из левого потока остался в результате нормального функционирования программы нет. Просьба подсказать верный подход к решению данной проблемы.
Код:
public class DelegateLearnin { public delegate void del(string txt); public static void Learnin() { del a = new del(AddText); a("Доброе утречко"); } public static void AddText(string txt) { AdvancedForm.listBox1.Items.Add(txt); } } |
17.12.2009, 06:46 | #2 |
старый хрыч
Сообщений: 6,705
Регистрация: 17.12.2006
Возраст: 37
Не в сети |
[PHP]private delegate void SetTextDelegate(string s);
private void SetText(string s) { if (button1.InvokeRequired) { SetTextDelegate setTextDelegate = new SetTextDelegate(SetText); this.Invoke(setTextDelegate, new object[] { s }); } else button1.Text = s; } private void button1_Click(object sender, EventArgs e) { Thread thread = new Thread(Renamer); thread.Start(); } private void Renamer() { SetText("Ахтунг!"); }[/PHP] |