winform 程序,用了thread,timer,使用application.exit ,有时可以正常退出,但有时会在任务管理器里还有一个任务的实例,thread应该是已经执行完的,timer有在跑,请问是什么原因呢,请指教

解决方案 »

  1.   

    如果当真不能很好控制你的 timer/thread, 那么thread.Isbackground = true; //所有线程设置为后台
    用线程代替 timer.
      

  2.   

    Application.ExitThread();
    Application.Exit();
    试试
      

  3.   

    Check your thread is stop at first, set timer.Enable=false;
      

  4.   

    我曾经问过一类似的问题,下面的答案,你可以参考下看对你的问题有没有用~
     lw8122(随风) ( ) 信誉:100  2006-6-20 22:07:00  得分: 7  
     
     
    因为Application.Exit(0)好像只在主线程可以起作用,而且当有线程,或是阻塞方法的情况下,很容易失灵。用这句:
    System.Environment.Exit(0);万试万灵,无论在主线程和其它线程,只要执行了这句,都可以把程序结束干净。
      

  5.   

    如果是进程里有的话,我在项目中是这样处理的,
    System.Diagnostics.Process[] myprocess=System.Diagnostics.Process.GetProcessesByName("程序名");
    for(int i=0;i<myprocess.Length;i++)
    {
    myprocess[i].Kill();
    }