介绍
这篇文章主要介绍c#线程控制的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
<强>方案一:强>
调用线程控制方法。启动:Thread.Start();停止:Thread.Abort();暂停:Thread.Suspend();继续:Thread.Resume ();
,,,,,,,,private void btn_Start_Click (object ,发送方,EventArgs e) ,,,,,,,{ ,,,,,,,,,,,mThread.Start();,,//,开始,,,,,,,,}private void btn_Stop_Click (object ,发送方,EventArgs e) ,,,,,,,{ ,,,,,,,,,,,mThread.Abort();,,//,终止,,,,,,,,}private void btn_Suspend_Click (object ,发送方,EventArgs e) ,,,,,,,{ ,,,,,,,,,,,mThread.Suspend();,,//,暂停,,,,,,,,}private void btn_Resume_Click (object ,发送方,EventArgs e) ,,,,,,,{ ,,,,,,,,,,,mThread.Resume();,,//,继续}
线程定义为:
,,,,,,,,,,,,mThread =, new 线程((),=在{{for 尝试(int j =, 0;, j & lt;, 20;, j + +) ,,,,,,,,,,,,,,,,,,,{int vSum =, 0; this.textBox1.Text +=,“——→“; for (int 小姐:=,0;,小姐:& lt;, 100000000;,我+ +) ,,,,,,,,,,,,,,,,,,,,,,,{if (小姐:%,2,==,0) ,,,,,,,,,,,,,,,,,,,,,,,,,,,{ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vSum +=,我; ,,,,,,,,,,,,,,,,,,,,,,,,,,,其他}{ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,vSum -=,我; ,,,,,,,,,,,,,,,,,,,,,,,,,,,} ,,,,,,,,,,,,,,,,,,,,,,,}this.textBox1.Text +=, string.Format(“{0},=祝辞,vSum =, {1} \ r \ n",, DateTime.Now.ToString (),, vSum); ,,,,,,,,,,,,,,,,,,,,,,,thread . sleep (1000); ,,,,,,,,,,,,,,,,,,,} ,,,,,,,,,,,,,,,}catch (ThreadAbortException 交货) ,,,,,,,,,,,,,,,{ ,,,,,,,,,,,,,,,,,,,Console.WriteLine (“ThreadAbortException: {0},,, ex.Message); ,,,,,,,,,,,,,,,} ,,,,,,,,,,,});
值得注意的是:通过Thread.Abort()停下来的线程(或自行运行结束的线程),都无法直接通过Thread.Start()方法再次启动,必须重新创建一个线程启动。
所以,“开始按钮”事件应为:
,,,,,,,,private void btn_Start_Click (object ,发送方,EventArgs e) ,,,,,,,{//,定义线程mThread =, new 线程((),=祝辞,//,Lambda 表达式,,,,,,,,,,,,{尝试{for (int j =, 0;, j & lt;, 20;, j + +) null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null nullc#线程控制的示例分析