gpt4 book ai didi

c# - 后台线程比 UI 线程花费更多时间

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

我有一些代码可以与一些 COM dll 和 ActiveX 控件互操作,然后获取一些结果。我正在尝试在另一个线程的后台运行此代码。

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

如果我将这段代码移到后台线程中,UI 仍保持响应,但花费的时间几乎翻倍,达到 10-11 秒。我正在做的事情没有什么不同,但是是否有任何具体原因导致这需要更多时间。

截至目前无法放置任何代码。我也尝试增加线程优先级。它没有帮助。

谢谢

最佳答案

您可能应该对此进行概要分析,以查看该后台线程的执行实际何时开始,以及它的实际耗时是多少 - 从开始到结束。有许多相当不错的分析器可以为您完成这项工作。请记住,当您创建一个单独的线程时,这并不意味着它一定会立即启动。有些东西可能会打断它(比如优先级更高的东西)。另外,当您在 UI 线程上执行它时,它具有您的 UI 线程的优先级:您将后台线程设置为什么优先级?正如 DeveloperGuo 建议的那样——您应该在该后台线程上实例化 COM 对象:如果该对象不必闲逛,那么让该线程对 COM 对象和其他资源负责通常更清洁、更高效它使用,并且只是提供一个更高级别的抽象 API 供您的其余程序代码使用。这些只是一般性建议 - 如果不查看代码就无法获得更具体的建议。

关于c# - 后台线程比 UI 线程花费更多时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22469802/

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