下边是我的代码,我在button2的单击事件里新建一个线程,执行bian函数
函数里更改主窗体上的控件notifyIcon1,但是每次我关闭主窗口,但是线程里的死循环并没有结束,还是在执行,并且提示notifyIcon1 已经没有了。我想知道怎么判断主窗口的控件是否还存在,我该怎么写判断来 return这个死循环呢 private void button2_Click(object sender, EventArgs e)
        {
            
            Thread thread1 = new Thread(bian);            thread1.Start();
         }private void bian()
        {
            Icon ic1 = new Icon("124.ico");
            Icon ic2 = new Icon("123.ico");
 
            while (true)
            {
                
                notifyIcon1.Icon = ic1;
                Thread.Sleep(500);
                notifyIcon1.Icon = ic2;
                Thread.Sleep(500);
                
            }

解决方案 »

  1.   

    整个你的程序都是错的。根本不应该在工作线程直接操作控件,应该使用控件的Invoke/BeginInvoke方法。
      

  2.   

    百度一下应该使用控件的Invoke/BeginInvoke方法就知道了
      

  3.   

    notifyIcon这个控件 没有找到invoke这个函数啊 
      

  4.   

    notifyIcon这个控件 没有找到invoke这个函数啊    求指导
      

  5.   

    notifylcon.Dispatcher.Invoke然后你可以考虑把while的判断语句改一下,例如改成while(notiflcon!=null)之类的