Функция, запущенная в отдельном потоке, должна писать информацию в TextBox.
Пишу в ней:
MyTextBox.Text+="Some text";
Программа запускается нормально, но при запуске потока получаю окошко "An unhandled exception of type 'System.InvalidOperationException' occurred in System.Windows.Forms.dll". В дополнительной информации сказано, что "Cross-thread operation not valid: Control 'MyTextBox' accessed from a thread other than the thread it was created on."
lock и т.п. не помогает.
Все примеры по потокам, которые удалось найти — консольные, там такого нет.
03.09.07 17:55: Перенесено модератором из '.NET' — AndrewVK
Вопрос снят — если использовать this.Invoke, всё работает.
Хорошая статья по теме:
http://www.gotdotnet.ru/LearnDotNet/WinForms/599.aspx
Здравствуйте, lexander_t, Вы писали:
_>Вопрос снят — если использовать this.Invoke, всё работает.
_>Хорошая статья по теме: http://www.gotdotnet.ru/LearnDotNet/WinForms/599.aspx
Статья старовата будет.
Актуальнее:
BackgroundWorker
AsyncOperation
SynchronizationContext
Здравствуйте, lexander_t, Вы писали:
MyTextBox.Invoke((EventHandler) delegate { MyTextBox.Text+="Some text"; });