Как создать многопоточные формы как MDIChild
Можно ли иметь несколько многопоточных форм как MDIChild? У меня есть элемент управления ActiveX в форме MdiChild, который может занимать много ресурсов процессора, и хотел бы, чтобы один элемент управления не влиял на другой элемент управления, используя приведенный ниже пример кода. Но строка frmDoc.MdiParent = Me выдает исключение кросс-потоков.
Dim frmDoc As MDIChild
Dim newThread As New Thread(
Sub()
frmDoc = New MDIChild
frmDoc.MdiParent = Me '<- this line throws cross threading exception.
Application.Run(frmDoc)
End Sub
)
newThread.IsBackground = True
newThread.SetApartmentState(ApartmentState.STA)
newThread.Start()
Выдает исключение System.InvalidOperationException:
Message=Cross-thread operation not valid:
Control 'FormMdiApp' accessed from a thread other than the thread it was created on.
Source=System.Windows.Forms