C# 死循环导致界面卡死问题
winform程序 我用一个timer控件 每200MS执行一次 用来获取数据 当获取到数据的时候 会弹出新窗体 但是弹出的新窗体会卡死
在不停用该timer控件的情况下 怎么优化其性能 (试过用线程 但好像也有这样的问题 不知道是不是我线程没写好) c# winform 线程 优化
[解决办法]
BeginInvoke 委托开启新窗体!
[解决办法]
说得太笼统!天知道你代码怎么写的。
[解决办法]
http://www.cnblogs.com/Zeech-Lee/archive/2011/10/14/2212376.html
[解决办法]
你timer线程中创建的窗体肯定没时间响应你的动作,因为线程都一直在工作。正确做法是在主窗口中提供一个方法用于调用委托显示新窗体。
[解决办法]
private void ShowMsg(string msg)
{
if (this.InvokeRequired)
{
Action<string, bool> at = ShowMsg;
this.Invoke(at, msg);
}
else
{
//显示窗口代码
new FormMsg(msg).Show();
}
}
private void ShowMsg(string msg)
{
if (this.InvokeRequired)
{
Action<string> at = ShowMsg;
this.Invoke(at, msg);
}
else
{
//显示窗口代码
new FormMsg(msg).Show();
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
[解决办法]
那你就在定时器里加Appliction.DoEvents()
[解决办法]
在弹出新窗体之前把timer stop()一下,处理完了重新start()
[解决办法]