gpt4 book ai didi

.net - 如何将多线程表单创建为 MDIChild

转载 作者:行者123 更新时间:2023-12-04 18:11:42 26 4
gpt4 key购买 nike

是否可以有多个线程形式作为 MDIChild?我有一个 MdiChild 形式的 ActiveX 控件,它可能会占用大量处理 CPU,并且希望通过使用下面的示例代码使一个控件不会影响另一个控件。但是行 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

最佳答案

GUI 元素只能在主事件循环中初始化和访问。您可以异步或在后台线程中处理繁重的计算。

关于.net - 如何将多线程表单创建为 MDIChild,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12505916/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com