如标题所述,我写了一个winform的程序,在按下button会关闭程序,但是在任务管理器的应用程序中该程序已被关闭,但是任务管理器的处理程序还有该程序存在,我该改哪里,谢谢各位?os : winxp sp2
IDE : vs2008(c#)
NET 3.5public void CheckServer()
{
 while (true)
 {
  //每5分钟DB可接收之笔数 , 每5分钟数据笔数=每1HR数据笔数 / 12
  int intChkLocal = Int32.Parse(chkLocalTableAdapter.countLocal().ToString()) / 12 ; 
  int intChkTysg = Int32.Parse(chkTysgTableAdapter.countTysg().ToString()) / 12;
  int intChkWellCome = Int32.Parse(chkWellcomeTableAdapter.countWellcome().ToString())/ 12;  //每5分钟数据笔数
  int intChkTime=5;  //当DB 5分钟数据笔数为5笔
  if (intChkLocal < intChkTime && intChkTysg < intChkTime && intChkWellCome < intChkTime)
  {    if (cbSendMail.Checked == true)
    {
     SendMail();
    }    pbServerStat.Image = Properties.Resources.ImgServerWarning; //改变图形
 }
  else
  {   pbServerStat.Image = Properties.Resources.imgServerOk;//改变图形
  }  //每5 min执行一次,1000ms = 1min 
  Thread.Sleep(1000 * 60*5);
}
}
private void Form1_Load(object sender, EventArgs e)
{
// TODO: 这行程序代码会将数据加载 'dsEnergySaver1.chkLocal' 数据表。您可以视需要进行移动或移除。
this.chkLocalTableAdapter.Fill(this.dsEnergySaver1.chkLocal);
this.chkTysgTableAdapter.Fill(this.dsEnergySaver1.chkTysg);
this.chkWellcomeTableAdapter.Fill(this.dsEnergySaver1.chkWellcome);Thread t = new Thread(new ThreadStart(CheckServer) );t.Start();
}
 private void btnExit_Click(object sender, EventArgs e)
  {
   if (MessageBox.Show(" 确定要关闭窗体程序?", "闭关程序", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1,   
          MessageBoxOptions.DefaultDesktopOnly) == DialogResult.Yes)
       { 
        Application.Exit();
       }
             
}

解决方案 »

  1.   

    是否你的子线程没有Stop造成的?
      

  2.   

    private void Form1_Load(object sender, EventArgs e)
    {
    // TODO: 这行程序代码会将数据加载 'dsEnergySaver1.chkLocal' 数据表。您可以视需要进行移动或移除。
    this.chkLocalTableAdapter.Fill(this.dsEnergySaver1.chkLocal);
    this.chkTysgTableAdapter.Fill(this.dsEnergySaver1.chkTysg);
    this.chkWellcomeTableAdapter.Fill(this.dsEnergySaver1.chkWellcome);Thread t = new Thread(new ThreadStart(CheckServer) );
    t.IsBackground = true;
    t.Start();
    }
     private void btnExit_Click(object sender, EventArgs e)
      {
       if (MessageBox.Show(" 确定要关闭窗体程序?", "闭关程序", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1,   
              MessageBoxOptions.DefaultDesktopOnly) == DialogResult.Yes)
           { 
            Application.Exit();
           }
                 
    }
      

  3.   

    在closed事件中,先把该进程结束