gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 00:20:58 26 4
gpt4 key购买 nike

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

最佳答案

tl,dr 不要这样做

控件可以在不同的线程上创建,但是,当它们被添加到父级(在不同的线程上创建)时,可能会引发跨线程异常。我不确定此异常是否“保证”,但不要这样做。 (存在跨线程异常而不是隐式编码(marshal)处理是有原因的;快死总比以后死锁好。)

跨线程和 [winform] 控件不能混用。当然,如果不同的表单在不同的线程上,并且每个表单的子项都在与表单相同的线程上,并且通过“调用”或类似的方式保护或使用跨线程访问......但表单不是“ child ”控制。

快乐编码。


示例跨线程异常消息:

System.InvalidOperationException: Cross-thread operation not valid: Control '...' accessed from a thread other than the thread it was created on.

关于C# 我可以在另一个线程中创建控件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8005658/

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