Делаю так:
public partial class Form1 : Form
{
...
private void Button1_Click(object sender, EventArgs e)
{
ThreadStart WorkerStart = new ThreadStart( StartMethod );
Thread WorkerThread = new Thread( WorkerStart );
WorkerThread.Name = "Worker";
WorkerThread.Start();
}
private void StartMethod()
{
TextBox1.Text += "HelloWord!!!! \r\n";
}
...
}
Проблема:
-Поток создается нормально. Как доходит до выполнения TextBox1.Text += "HelloWord!!!! \r\n", вылетает ошибка:
An unhandled exception of type 'System.NotSupportedException' occurred in System.Drawing.dll
Additional information: Control.Invoke must be used to interact with controls created on a separate thread.
Подскажите пожалуйста как это преодолеть? и как правильно выводить значения в TextBox в дополнительном потоке? Что делаю не правильно?
16.04.10 17:09: Перенесено из '.NET'
Здравствуйте, Аноним, Вы писали:
А>Делаю так:
...
А>Проблема:
А>-Поток создается нормально. Как доходит до выполнения TextBox1.Text += "HelloWord!!!! \r\n", вылетает ошибка:
А>An unhandled exception of type 'System.NotSupportedException' occurred in System.Drawing.dll
А>Additional information: Control.Invoke must be used to interact with controls created on a separate thread.
А>Подскажите пожалуйста как это преодолеть? и как правильно выводить значения в TextBox в дополнительном потоке? Что делаю не правильно?
Написано же, использовать Control.Invoke для обновления элементов управления из другого потока. Обсуждалось уже сотни раз.
Здравствуйте, Gremlin2, Вы писали:
G>Написано же, использовать Control.Invoke для обновления элементов управления из другого потока. Обсуждалось уже сотни раз.
хм, обсуждалось? — значит на РСДЫЭНЕ посик *ерово работает — лияно я ни одного обсуждения к сожалению не нашел , а как использовать Control.Invoke убейте не знаю
Здравствуйте, simpleton, Вы писали:
G>>Написано же, использовать Control.Invoke для обновления элементов управления из другого потока. Обсуждалось уже сотни раз.
S>хм, обсуждалось? — значит на РСДЫЭНЕ посик *ерово работает — лияно я ни одного обсуждения к сожалению не нашел , а как использовать Control.Invoke убейте не знаю
У меня жена точно также говорит, когда в яндексе найти элементарной вещи не может. Вот скриншот, по первой ссылке попадаем на статью
Простая и безопасная реализация многопоточности в Windows FormsАвтор(ы): Крис Селлз (Chris Sells)
Дата: 05.06.2003
В статье рассматривается использование многопоточности в приложениях Windows Forms на примере отображения хода длительной операции с использованием асинхронного делегата для запуска рабочего потока и метода Invoke для главной формы.
на "РСДЫЭНЕ". Поиском по статье в браузере CTRL+F, чтобы найти в ее тексте ".Invoke", надеюсь, догадаетесь сами