簡體   English   中英

C# 線程 - 如何啟動和停止線程

[英]C# Threading - How to start and stop a thread

誰能給我一個關於線程主題的先機? 我想我知道如何做一些事情,但我需要知道如何做以下事情:

設置一個主線程,該線程將一直保持活動狀態,直到我發出停止信號為止(如果您想知道,它會在收到數據時終止)。 然后我希望啟動第二個線程,該線程將從文本框中捕獲數據,並在我向用戶按下 Enter 鍵時發出信號時退出。

干杯!

我就是這樣做的...

public class ThreadA {
    public ThreadA(object[] args) {
        ...
    }
    public void Run() {
        while (true) {
            Thread.sleep(1000); // wait 1 second for something to happen.
            doStuff();
            if(conditionToExitReceived) // what im waiting for...
                break;
        }
        //perform cleanup if there is any...
    }
}

然后在它自己的線程中運行它......(我這樣做是因為我也想將 args 發送到線程)

private void FireThread(){
    Thread thread = new Thread(new ThreadStart(this.startThread));
    thread.start();
}
private void (startThread){
    new ThreadA(args).Run();
}

線程是通過調用“FireThread()”創建的

新創建的線程將運行,直到滿足其停止條件,然后它就會死亡......

你可以用委托給“main”發信號,告訴它線程什么時候死了..這樣你就可以開始第二個......

最好通讀: 這篇 MSDN 文章

Thread th = new Thread(function1);
th.Start();
th.Abort();

void function1(){
//code here
}

在您生成的線程中使用靜態 AutoResetEvent 以使用 Set() 方法回調主線程。 這家伙在 SO 中有一個相當不錯的演示,說明如何使用它。

AutoResetEvent 說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM