最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#停止線程的方法

 更新時間:2015年08月20日 17:51:52   作者:我心依舊  
這篇文章主要介紹了C#停止線程的方法,實例分析了C#正確停止線程的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了C#停止線程的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WinFormApp
{
 public partial class Form1 : Form
 {
  System.Threading.CancellationTokenSource cancel = new System.Threading.CancellationTokenSource();
  System.Threading.Thread[] thread;
  int len = 2;
  public Form1()
  {
   InitializeComponent();
   thread = new System.Threading.Thread[len];
  }
  void RunThread()
  {
   ThreadInvoke.SetEventInvokeValue(richTextBox1, "即將開始運行線程.");
   System.Threading.Thread t = null;
   for (int i = 0; i < len; i++)
   {
    t = new System.Threading.Thread(new System.Threading.ThreadStart(Sample));
    t.Name = "thread_0" + i.ToString();
    t.IsBackground = true;
    thread.SetValue(t, i);
    t.Start();
   }
  }
  void Sample()
  {
   string name = System.Threading.Thread.CurrentThread.Name;
   ThreadInvoke.SetEventInvokeValue(richTextBox1, "正在運行線程:" + name);
   while (true)
   {
    if (cancel.IsCancellationRequested)
    {
     ThreadInvoke.SetEventInvokeValue(richTextBox1, "線程:" + name + " 停止運行...");
     //線程被終止后回調(diào)
     cancel.Token.Register(delegate
     {
      ThreadInvoke.SetEventInvokeValue(richTextBox1, "線程:" + name + " 停止運行之后的回調(diào)函數(shù)...");
     });
     break;
    }
   }
  }
  void ShowStatu()
  {
   StringBuilder sb = new StringBuilder();
   for (int i = 0; i < len; i++)
   {
    if (thread[i].IsAlive == true)
    {
     sb.AppendLine("線程:" + thread[i].Name.ToString() + " 還在運行...");
    }
   }
   if (sb.ToString() == "")
   {
    sb.AppendLine("線程已經(jīng)全部停止...");
   }
   richTextBox1.Text += sb.ToString();
  }
  /// <summary>
  /// 開始運行線程
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
  private void button1_Click(object sender, EventArgs e)
  {
   RunThread();
  }
  /// <summary>
  /// 顯示所有的線程狀態(tài)
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
  private void button2_Click(object sender, EventArgs e)
  {
   ShowStatu();
  }
  /// <summary>
  /// 終止所有的線程
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
  private void button3_Click(object sender, EventArgs e)
  {
   cancel.Cancel();
  }
 }
}

希望本文所述對大家的C#程序設(shè)計有所幫助。

相關(guān)文章

最新評論

原平市| 屏东市| 平陆县| 福鼎市| 潼南县| 洛浦县| 邢台县| 北碚区| 湘阴县| 南木林县| 义马市| 诸暨市| 方山县| 五原县| 班玛县| 十堰市| 舞阳县| 九台市| 苏尼特右旗| 射洪县| 庐江县| 高邑县| 南郑县| 浦江县| 勐海县| 宜阳县| 广宗县| 南昌市| 高陵县| 永年县| 永康市| 英吉沙县| 许昌市| 巴楚县| 清流县| 津市市| 滁州市| 澄迈县| 视频| 东乌珠穆沁旗| 娱乐|