none
執行緒停止 RRS feed

  • 問題

  • 想請問~

    for (int i = 0; i < 5; i++)
                {
                    Thread ClientSocket = new Thread(new ThreadStart(test));
                    ClientSocket.Name = "cs" + i.ToString();
                    ClientSocket.IsBackground = true;
                    ClientSocket.Start();
                }
    這樣會跑5個Thread
    每個Thread 我都有給Name
    想請問我如何用Thread 的Name來停止某個Thread 呢?
    2009年7月14日 上午 09:11

解答

所有回覆

  • 用陣列或 List 存放你的 Thread


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    • 已標示為解答 Lolota Lee 2009年7月28日 上午 06:18
    2009年7月14日 上午 10:40
  • 感謝回覆.

    那再請問放入Array中
    如何讓某個Thread停止運作呢?

    2009年7月15日 上午 01:24
  • Thread.Abort 方法 (Object)
    http://msdn.microsoft.com/zh-tw/library/5b50fdsz(VS.80).aspx

    參考此篇看看囉...
    2009年7月15日 上午 01:33
  • 感謝回覆.

    不過我的問題是如何在我動態創立的5個Thread中 如以下寫法

    for (int i = 1; i <= 5; i++)//建立5個執行緒

                {

                    Thread subThread = new Thread(new ThreadStart(threadwork));

                    subThread.Name = "Thread"+i.ToString();//以順序賦予執行緒名稱

                    subThread.Start();//啟動執行緒

                }


    停止其中某一個Thread,例如我要停止Thread Name是 Thread1

    因為我在想創立Thread有個Name的屬性
    是否可以用Name來判斷,並且中斷她

    2009年7月15日 上午 02:15
  • 用Array,用List,用Directory......很多陣列型別.
    你用Directory字典型別就能做到你要的功能了.

    2009年7月15日 上午 02:34
  • 你把線上手冊看過你覺得相關的部分看完後,你就會發現答案。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    2009年7月15日 上午 02:37
  • 感謝.原來把Thread存入Dictionary

    Dictionary<string, Thread> myDicThr = new Dictionary<string, Thread>();
    Thread myThread;
                for (int i = 0; i < 5; i++)
                {
                    myThread = new Thread(new ThreadStart(testThr));
                    myThread.Name = "t" + i.ToString();
                    myThread.Start();
                    myDicThr.Add("t" + i.ToString(), myThread);
                }

    在從Dictionary直接就可以停止了.
    myDicThr["t0"].Abort();

    這樣應該沒錯吧@@ try了恨久才知道要這樣用!!
    2009年7月15日 上午 04:43