![]() |
1
4
不是这样的。理解“消息循环”是非常重要的,一定要仔细阅读。简而言之,Windows只能告诉你的程序,当程序的主线程空闲时,一个按钮被点击了。你的主线程应该总是空闲的,准备好在需要做一些工作的时候开始工作。比如画你的窗体或者处理击键。或者在用户单击“取消”按钮时执行某些操作。 也就是说需要做些其他的事情。一根线。到目前为止,在线程的麻烦世界中开始的最好方法是BackgroundWorker类。它有一个CancelAsync()方法,显式地设计为做您想做的事情。请务必查看MSDN库文章中提供的有关此方法的代码示例。 |
![]() |
2
2
如果您无法控制执行时间很长的代码。你所能做的就是中止线程。
|
![]() |
3
2
您应该在不同的线程中执行“long”=所有超过1/5秒的操作。
最好的方法是给一个操作某种类型的“上下文”加上一个变量,告诉workerthread用户是否要缩写这个操作。
|
![]() |
4
2
您可以考虑使用BackgroundWorker类,它将直接与线程一起工作抽象出来,因此实现起来更容易一些。您只需创建BackgroundWorker的一个实例并将一些事件处理程序附加到它。 Here is an example |