程序假死问题处理
当按钮处理函数需要长时间循环执行一些任务的时候,界面会有卡死的现象,处理方案如下:
button1_Click { button1.Enable=false;//禁用相关控件,防止资源交叉导致意外情况 try { if(输入不合法)//输入校验 { button1.Enable=true;//恢复相关控件启用 return; } for { 执行按钮核心任务 Application.DoEvents();//相应其他事件,防止假死 } } catch(Exception ex){ Log(); } button1.Enable=true;//恢复相关控件启用 }
注意:如果半路需要return记得恢复相关控件为启用状态,就像输入校验那样。