4
|
Brian Lyttle · 技术社区 · 16 年前 |
![]() |
1
6
您的用户界面没有更新,因为所有的工作都发生在用户界面线程中。 你的电话:
在创建“this”(您的窗体)的线程(即用户界面线程)上说invoke update.action.run()。
确实会给UI线程重新绘制屏幕的机会,但我会尝试创建新的委托,并在此基础上调用BeginInvoke。 这将在从线程池分配的独立线程上执行update.action.run()函数。然后,可以继续检查IAsyncResult,直到更新完成,在每次检查之后查询更新对象的进度(因为不能让其他线程更新进度条/ui),然后调用application.doEvents()。 之后还应该调用endinvoke(),否则可能导致资源泄漏。 我也会尝试在进度对话框上放置一个取消按钮,并添加一个超时,否则如果更新被卡住(或花费太长时间),那么您的应用程序将永远锁定。 |
![]() |
2
1
你试过把
在这里
|
![]() |
3
1
@ John Sibly
但是,在处理开始/结束异步模式的所有其他情况下,您应该假设它会泄漏,如您所述。 |
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |