创建线程
th = new Thread(myHanShu);//创建线程对象
th.IsBackground = true;//是否在后台运行
th.Start();//线程开始运行
销毁线程
th2.Abort();//强制销毁线程
或者等线程函数自己执行完
或者System.Environment.Exit(0);//关闭后台所有线程并退出程序(有点猛,等于任务管理器的结束进程)
综上所述一般采用以下方法进行关闭线程和打开线程
使用while(boolValue)包含线程内容
private void openThread()//打开线程
{
boolValue = true;
th = new Thread(myHanShu);//创建线程对象
th.IsBackground = true;//是否在后台运行
th.Start();//线程开始运行
}
private void closeThread()//关闭线程
{
boolValue = false;
if(th != null)
{
if(th.IsAlive)//线程是否存在了
th.Join();//等待线程结束
}
}
注意事项
线程销毁后需要重新创建一遍线程,不可直接使用th.Start();
CheckForIllegalCrossThreadCalls = false;//一般加在窗口Load函数中。通俗得将,设置为false之后,就不会自动去检查一个线程中创建的控件是否被另一个线程使用的情况,这样我们就能使用这个线程创建的控件。
textBox.CheckForIllegalCrossThreadCalls = false;//control ony