Вывод в TextBox из дополнительного потока потока
От: Аноним  
Дата: 16.04.10 07:11
Оценка:
Делаю так:


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'
Re: Вывод в TextBox из дополнительного потока потока
От: Gremlin2 http://www.fb2library.net/
Дата: 16.04.10 07:25
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Делаю так:


...

А>Проблема:

А>-Поток создается нормально. Как доходит до выполнения 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 для обновления элементов управления из другого потока. Обсуждалось уже сотни раз.
Re[2]: Вывод в TextBox из дополнительного потока потока
От: simpleton Украина  
Дата: 22.10.10 21:52
Оценка:
Здравствуйте, Gremlin2, Вы писали:
G>Написано же, использовать Control.Invoke для обновления элементов управления из другого потока. Обсуждалось уже сотни раз.
хм, обсуждалось? — значит на РСДЫЭНЕ посик *ерово работает — лияно я ни одного обсуждения к сожалению не нашел , а как использовать Control.Invoke убейте не знаю
Re[3]: Вывод в TextBox из дополнительного потока потока
От: Fortnum  
Дата: 22.10.10 22:49
Оценка:
Здравствуйте, simpleton, Вы писали:

G>>Написано же, использовать Control.Invoke для обновления элементов управления из другого потока. Обсуждалось уже сотни раз.

S>хм, обсуждалось? — значит на РСДЫЭНЕ посик *ерово работает — лияно я ни одного обсуждения к сожалению не нашел , а как использовать Control.Invoke убейте не знаю

У меня жена точно также говорит, когда в яндексе найти элементарной вещи не может. Вот скриншот, по первой ссылке попадаем на статью Простая и безопасная реализация многопоточности в Windows Forms
Автор(ы): Крис Селлз (Chris Sells)
Дата: 05.06.2003
В статье рассматривается использование многопоточности в приложениях Windows Forms на примере отображения хода длительной операции с использованием асинхронного делегата для запуска рабочего потока и метода Invoke для главной формы.
на "РСДЫЭНЕ". Поиском по статье в браузере CTRL+F, чтобы найти в ее тексте ".Invoke", надеюсь, догадаетесь сами

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.