C#我可以在另一个线程中创建控件吗?

ill*_* mg 4 c# user-interface

通常,控件是在主线程上创建的.是否可以在另一个线程中创建一些子控件?

小智 7

tl,博士不要这样做.

可以在不同的线程上创建控件,但是当它们被添加到父级(在不同的线程上创建)时,然后可能会有引发了一个跨线程异常.我不确定这个例外是否"保证",但不要这样做.(由于某种原因,存在跨线程异常而不是隐式编组;最好比以后的死锁快死.)

交叉线程和[winform]控件不混合.当然,如果不同的表单位于不同的线程上,并且每个表单的子节点与表单位于同一个线程上,则跨线程访问通过"调用"或类似方式进行保护或使用......但表单不是"孩子"控制.

快乐的编码.


示例跨线程异常消息:

System.InvalidOperationException:跨线程操作无效:从创建它的线程以外的线程访问控制'...'.