【发布时间】:2011-10-05 14:52:37
【问题描述】:
我正在寻找一个解释,为什么当我运行在 UI 线程上执行一些繁重递归处理的代码时,代码会在大约 90 秒内执行。然而,当我在异步线程(而不是 UI 线程)上运行相同的代码时,代码几乎立即执行?任何解释将不胜感激。
TY, 乔什
【问题讨论】:
-
你能发布一些关于这两个场景的代码吗?在这两种情况下其他因素是否相同?有了给定的信息,我想不出应该是这种方式的特定原因。
-
邮政编码不是一个选项。在这两种情况下,因素“似乎”是相等的。我发布了这个问题,因为“有了给定的信息,我想不出应该这样的特定原因”。所以你在重申我的问题。TY。
-
是什么让你相信异步代码是立即执行的?你确定它返回正确的值吗?你用什么方法来表示完成?
-
处理完成后,我加载了一个 TreeView 并且可以直观地确认我得到了相同的结果。我也有一些确认结果的调试语句。我正在使用 ManualResetEvent (.Set()) 向 UI 发出我的异步线程已完成处理的信号。感谢您的回复。
-
为什么没有在选项上发布代码?代码是否更新了任何公共属性?
标签: .net multithreading user-interface asynchronous recursion