爲了表示在線程上執行的方法,我使用 ParameterizedThreadStart
並傳遞方法的名稱。在這種情況下該方法的名字是SelectJob
和實例化如下:使用委託給線程傳遞方法簽名
ParameterizedThreadStart starter = new ParameterizedThreadStart(SelectJob);
protected void SelectJob(object index)
{
...
}
爲了重新使用我想,如果可能的話,該方法的名稱存儲在變量中,但代碼的一部分的智能感知顯示ParameterizedThreadStart
的方法簽名爲ParameterizedThreadStart(void (object) target)
,我不知道如何存儲這種價值。從MSDN我意識到這是一個代表所以讀How to: Declare, Instantiate, and Use a Delegate後,我想申報...
delegate void Del(string str);
Del selectDelegate = SelectJob;
...但由於SelectJob
方法也不是一成不變的,我沒有能夠做到這一點。簡單地將該方法設爲靜態並不是一個簡單的選擇。
有沒有其他的方式來做出這個聲明?
謝謝!
謝謝。我很少關注代表的使用,雖然在概念上並不困難,但我經常很難正確實例化它們。感謝您的幫助! – McArthey 2012-03-08 15:52:38
不客氣。 – 2012-03-08 15:54:29