当前位置: 代码迷 >> C# >> winform 中使用线程后 以致无法关闭程序
  详细解决方案

winform 中使用线程后 以致无法关闭程序

热度:132   发布时间:2016-05-05 05:02:55.0
winform 中使用线程后 导致无法关闭程序
 public class NoticeThread
    {
        private static Thread _runtimeThread;
        private static NoticeForm _noticeForm;

        public void StartServer()
        {
            _noticeForm = new NoticeForm();
            _noticeForm.ShowDialog();

            _runtimeThread = new Thread(Go);
            _runtimeThread.Start();
            //while (true)
            //{
            //    Thread.Sleep(10 * 1000);
            //}
        }

        private static void Go()
        {
            while (true) 
            {
                if (GetData())
                {
                    _noticeForm.Close();
                    _noticeForm = new NoticeForm();
                    _noticeForm.ShowDialog();
                }
                Thread.Sleep(2 * 1000);
            }
        }

        private static bool GetData()
        {
            return true;
        }
    }
截不了图 sorry ,在_noticeForm.ShowDialog();出现窗口后 右键图标能退出 但是我关闭窗口后 再点击右键 就没有退出了 请问我的代码哪里出问题了
------解决思路----------------------
你的需求就是右下角有个图标,能右键点中弹出个菜单,里面有关闭
那么既然NotifyIcon是放在窗体里的,你就必须有个隐藏的主窗体来承载这个NotifyIcon,而不是把它放到子窗体里
否则只有在子窗体显示的时候NotifyIcon可用,你把子窗体关闭了,NotifyIcon也就不存在了
  相关解决方案