首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >后台线程比UI线程花费更多的时间。

后台线程比UI线程花费更多的时间。
EN

Stack Overflow用户
提问于 2014-03-18 03:28:25
回答 1查看 156关注 0票数 2

我有一些代码可以与一些COM dll和ActiveX控件进行交互,然后获取一些结果。我试图在另一个线程的后台运行这段代码。

但是我有一个问题,如果我使用UI线程来实现这一点,应用程序就会被阻塞,但是这个操作所需的时间大约是5-6秒。

如果我将这段代码移动到后台线程中,UI将保持响应性,但花费的时间几乎是10-11秒的两倍。我所做的没有什么不同,但是否有什么具体的原因,这需要更多的时间。

到目前为止还不能输入任何代码。我也尝试增加线程优先级。这没什么用。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-16 03:42:19

您可能应该对此进行分析,以查看后台线程的执行何时实际开始,以及实际的时间消耗是什么--开始到完成。有很多相当不错的分析工具可以帮你做到这一点。请记住,当您创建一个单独的线程时,这并不意味着它在那一刻就会启动。还有一些东西可能会打断它(比如优先级更高的东西)。另外,当您在UI线程上执行它时,它具有UI线程的优先级:您将后台线程设置为什么优先级?正如DeveloperGuo所建议的,您可能应该在后台线程上实例化COM对象:如果该对象不需要挂起,那么使该线程完全负责COM对象和它所使用的其他资源,并为您的程序代码的其余部分提供更高级别的抽象API,通常会更干净、更高效。这些只是一般性的建议--如果不看代码,就无法得到更具体的建议。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22469802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档