多线程程序,有时应用程序主窗口关闭了,但在任务管理器的进程中该程序仍然在运行,怎样强制彻底结束该应用程序?
有时出现“值不能为空”的错误提示,怎么也找不到是哪里引起的错,很郁闷
谁能告知这种情况怎么强制结束应用程序?如果有遇到“值不能为空”的错误提示那就也说一下

解决方案 »

  1.   

    结束应用程序:
    Application.Exit
      

  2.   

    在任务管理器的进程中该程序仍然在运行  ,那是你的某个线程还没有结束而主窗体等待其结束造成进程无法终止,你最好在关闭主窗体前先结束每个开启的子线程,最后调用主窗体的 Close()。Application.Exit() 也可以,但自己开启的线程还是自己关闭的好。
      

  3.   

    Application.Exit()不怎么好的优先选择close()
      

  4.   

    编程实现,不清楚,常用
    c:\>ntsd -c q -p 程序ID强制结束
      

  5.   

    杀掉进程,强制结束.方法如下:private void KillProcess(string processName)
    {
    System.Diagnostics.Process myproc= new System.Diagnostics.Process();
    //得到所有打开的进程
    try
    {
    foreach (Process thisproc in Process.GetProcessesByName(processName)) 
    {
    if(!thisproc.CloseMainWindow())
    {
    thisproc.Kill();
    }
    }

    }
    catch(Exception Ex)
    {
    MessageBox.Show("杀死" + processName + "失败!\r\n"+Ex.Message);
    }
    }
      

  6.   

    编程实现,不清楚,常用
    c:\>ntsd -c q -p 程序ID强制结束
    我也常用!!很爽的!