gpt4 book ai didi

c# - 如何检查主线程是否忙?

转载 作者:太空宇宙 更新时间:2023-11-03 15:00:03 25 4
gpt4 key购买 nike

我有一个 CAD 插件应用程序。在我的CAD应用程序中,CAD可能对可以使用哪个线程修改CAD实体有限制。这是我的要求:

  • 由于 COM 调用是在不同的线程上接收的,因此插件必须确保所有构造调用都在正确的线程(主线程)中进行。
  • 此外,由于内核可以在 CAD 繁忙时调用插件,因此插件必须确保它可以安全地调用构造线程而不会产生死锁。

一个有效的解决方案可能是在尝试使用主(构造)线程之前检查它是否繁忙。

所以我的问题是:如何检查主线程是否繁忙?

最佳答案

我遇到了类似的问题,并通过以下方式解决了:

ManualResetEvent waiter = new ManualResetEvent(false);
control.BeginInvoke((Action)(() => waiter.Set()));
bool threadIdle = waiter.WaitOne(timeout);

将超时设置为您想要的任何等待时间(例如 500 毫秒)

关于c# - 如何检查主线程是否忙?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46663938/

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