Geo*_*uer 0 multithreading timer winforms
在我的WinForms应用程序中,我需要弹出一个小的自定义对话框,在屏幕上停留X秒,然后消失.因此,一旦经过了适当的时间,我就使用System.Threading.Timer来调用_dialog.Close()方法.这当然意味着我必须完成整个"if InvokeRequired BeginInvoke"舞蹈,这不是一个真正的问题.
然而,问题是我的主要线程可能是关闭做上帝知道什么时候调用BeginInvoke.它可能无法绕过关闭窗口很长一段时间.我不需要窗口以毫秒的速度关闭,但是在一秒左右的时间内确实是必要的.
所以我的问题是BeginInvoke如何实际进入主线程,我怎样才能解决这个奇怪的限制呢?
如果您的UI线程一次忙碌很多秒,那么:
Application.DoEvents调用来编写代码(一个坏主意)当然System.Windows.Forms.Timer,System.Threading.Timer为了简单起见,请使用a 而不是a ,但更紧迫的是,修复代码以避免拥有如此繁忙的UI线程.
| 归档时间: |
|
| 查看次数: |
323 次 |
| 最近记录: |