2014-02-23 23 views
5

我是線程使用的初學者,並且在我見過的示例中(如herehere)必須將新線程分配給方法。但是,在方法內部有沒有辦法?我正在尋找這樣的事情:以相同的方法開始一個新線程

public void MyMethod() 
{ 
//Start new thread that affects only this method 

//Do stuff 
//More stuff 

} 

謝謝。

+1

是的,有一個lambda或一個匿名委託。你是什​​麼意思「......它隻影響方法......」? –

+2

你的意思是隻影響此方法 –

+0

我的意思是在該方法內執行的操作是在單獨的線程中完成的。 – Sturm

回答

3

如果您不想創建單獨的方法,您可以啓動匿名方法或lambda。

最簡單的方法:

Task.Run(()=>{ 
    // Your new thread code 
}); 

要知道,這將創建關閉和父方法變量,你在你的線程中使用也不會設置,直到你的線程完成。開始這種長時間運行的線程也不是一個好習慣,因爲它使用線程池。

因此,在這種情況下,您可以執行類似於下面的代碼的操作,或者使用更詳細的語法來創建任務並指定​​參數。

new Thread((ThreadStart)delegate() { 
// Your new thread code 
}).Start(); 

你可以把新Thread對象爲可變後對其進行控制。

相關問題