5
我是線程使用的初學者,並且在我見過的示例中(如here和here)必須將新線程分配給方法。但是,在方法內部有沒有辦法?我正在尋找這樣的事情:以相同的方法開始一個新線程
public void MyMethod()
{
//Start new thread that affects only this method
//Do stuff
//More stuff
}
謝謝。
我是線程使用的初學者,並且在我見過的示例中(如here和here)必須將新線程分配給方法。但是,在方法內部有沒有辦法?我正在尋找這樣的事情:以相同的方法開始一個新線程
public void MyMethod()
{
//Start new thread that affects only this method
//Do stuff
//More stuff
}
謝謝。
如果您不想創建單獨的方法,您可以啓動匿名方法或lambda。
最簡單的方法:
Task.Run(()=>{
// Your new thread code
});
要知道,這將創建關閉和父方法變量,你在你的線程中使用也不會設置,直到你的線程完成。開始這種長時間運行的線程也不是一個好習慣,因爲它使用線程池。
因此,在這種情況下,您可以執行類似於下面的代碼的操作,或者使用更詳細的語法來創建任務並指定參數。
new Thread((ThreadStart)delegate() {
// Your new thread code
}).Start();
你可以把新Thread
對象爲可變後對其進行控制。
是的,有一個lambda或一個匿名委託。你是什麼意思「......它隻影響方法......」? –
你的意思是隻影響此方法 –
我的意思是在該方法內執行的操作是在單獨的線程中完成的。 – Sturm