Многие элементы WinForms не являются безопасными по отношению к потокам. Поэтому обращаться к ним можно только из того потока, в котором они были созданы. Если нужно обратиться из другого потока, необходимо проверить свойство InvokeRequired и, при значении True, вызвать метод Invoke с передачей делегата на метод, который нужно выполнить - контрол его вызовет сам: Код | Private Sub If MyTextBox.InvokeRequired Then MyTextBox.Invoke(AddressOf DoSomeActions) Else DoSomeActions() End If End Sub
Private Sub DoSomeActions() MyTextBox.Text= "some text" End Sub
|
Впрочем, разумнее для этих целей воспользоваться компонентом BackgroundWorker, который инкапсулирует эту функциональность.
|