日期:2014-05-17  浏览次数:21118 次

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)
        {