簡體   English   中英

ThreadPool.QueueUserWorkItem添加委托嗎?

[英]ThreadPool.QueueUserWorkItem adding delegate?

通過閱讀一些代碼,我發現:

ThreadPool.QueueUserWorkItem(delegate { this.SaveInternal(); });

為什么有人要把delegate放在這里?

這樣的Usinng委托只是傳遞任何您不關心參數的有效委托,同時又使編譯器滿意的捷徑。 否則,您將必須傳遞與委托簽名匹配的方法。

最明顯的答案是因為沒有它,代碼將無法編譯。 例如:

ThreadPool.QueueUserWorkItem( { this.SaveInternal(); });

給出Invalid expression term '{'

QueueUserWorkItem需要一個WaitCallback參數,該參數是一個使用Object參數的方法。 您所擁有的長格式是:

ThreadPool.QueueUserWorkItem((state) => { this.SaveInternal(); });

與以下內容相同:

void Temp(Object state)
{
    this.SaveInternal();
}

ThreadPool.QueueUserWorkItem(Temp);

添加delegate { this.SaveInternal(); } delegate { this.SaveInternal(); }允許編譯器使用類型推斷來解決表觀歧義。

暫無
暫無

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

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