【发布时间】:2018-03-21 16:41:32
【问题描述】:
我有一个 CAD 插件应用程序。在我的 CAD 应用程序中,CAD 可能对可以使用哪个线程来修改 CAD 主体有限制。 这是我的要求:
- 由于 COM 调用是在不同线程上接收的,因此插件必须确保所有构造调用都在正确的线程(主线程)中进行。
- 此外,由于内核可以在 CAD 忙碌时调用插件,因此插件必须确保它可以安全地调用构造线程而不会造成死锁。
一个有效的解决方案可能是在尝试使用主(构造)线程之前检查它是否正忙。
所以我的问题是:如何检查主线程是否忙?
【问题讨论】:
-
如果主线程很忙,那么无论如何你都会被冻结
-
你支持什么线程模型。通常对于此类应用程序会使用 STA,并且此线程模型仅接受一个线程上的调用。
-
@Rahul 如何以编程方式检查主线程是否忙?
-
这是相反的。您无需检查任何内容,您应该使用正确的 SynchronizationContext(取决于您的应用程序、Winforms、WPF、无 UI 等以及您的代码),这应该为您完成工作:stackoverflow.com/questions/18097471/…
-
在调用任何方法之前如何确保主线程可用