2011-05-09 115 views
2

執行的方法與參數我有一個方法,我實例如下:幫助與線程

new DatabaseHarness.MemoryStressTest().ExecuteTest("Thread 1",1,1,1) 

什麼是通過一個線程調用此請求,傳遞參數如上圖所示的標準方式,使用.NET 4的線程功能?

非常感謝

回答

2

.NET 4.0的做法是使用Task

var task = Task.Factory.StartNew(
() => 
    { 
    new DatabaseHarness.MemoryStressTest().ExecuteTest("Thread 1", 1, 1, 1); 
    }, 
    TaskCreationOptions.LongRunning 
); 
3

如何:

Thread thread = new Thread(() => { 
    new DatabaseHarness.MemoryStressTest().ExecuteTest("Thread 1",1,1,1); 
}); 
thread.Start(); 
+0

由於該使用拉姆達爲的ThreadStart,如果你是從硬編碼參數值改變(「線程1」,1等)變量(threadName,輸入processid等等),這將複雜的事情,對嗎?所以你會想要在lambda範圍內創建局部變量作爲參數傳入? – 2011-05-09 18:47:09

+0

@Joel - 當然,但在*問題中沒有變量*在回答中很難顯示正確的參數化,尤其是在討論捕獲的變量時***。 – 2011-05-09 19:12:55