admin管理员组文章数量:1794759
C#延迟执行方法函数
需求分析:
我们在做winform开发的时候,有时候需要让程序休眠几秒钟,但是如果我们直接使用 Thread.Sleep()函数的话,页面UI就会停止响应。怎么样解决呢,你可以把页面涉及到表现UI的代码放到一个单线程处理,也可以采用我面的方法,加一个小函数就ok了。
if (MessageBox.Show("确定要清理吗?", "确认", MessageBoxButtons.YesNo) == DialogResult.Yes) { this.labMsg.Text = "正在清理,请稍候..."; ThreadPool.QueueUserWorkItem(state => { //延迟2秒执行 Thread.Sleep(2000); BeginInvoke(new Action(() => { //这里是实现某个功能的代码,返回结果给UI string result = Clean(); this.labMsg.Text = result; })); }); }也可以在线程里面休眠,然后再到主线程:
void Sleep() { Thread sub = new Thread(() => { //这里还可以处理些比较耗时的事情 Thread.Sleep(1000);//休眠时间 this.Dispatcher.Invoke(new Action(() => { DoSomeThing();//调用处理事件 })); }); } //休眠后你要做的事情 void DoSomeThing() { }
版权声明:本文标题:C#延迟执行方法函数 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686492707a73618.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论