0
有點不適合今天的技術有關,但我saw another way of working在asp.net中APM環境的任務,除了Task.FromAsync
爲什麼IHttpAsyncHandler提供extraData參數?
異步處理程序:
public class Handler : IHttpAsyncHandler
{
public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, object extraData)
{
//...
}
public void EndProcessRequest(IAsyncResult result)
{
//...
}
}
- 的
context
參數是實際的上下文我可以訪問/
(或傳遞給另一個beginXXX操作)請求和響應。 cb
是我執行/
(或傳遞給另一個beginXXX操作),當操作完成時。
問題
但什麼是object extraData
在方法的簽名幹什麼?
這是不,我得到了一些狀態下,從框架,相反 - 我創建狀態和直傳它,這樣我可以EndXXX投result.AsyncState
到T和使用這些數據。
那麼,爲什麼呢?
是的,我認爲是這樣/只是想確定。它只是想成爲一名優秀的APM公民。因此它遵循協議。但它實際上並不_nothing_ –
不過,不要忘記將它傳遞給'IAsyncResult.AsyncState'。 –
我想你的意思是說「當你沒有任何狀態」 - 但如果我這樣做 - 然後[我已經通過TCS來做](http://i.imgur.com/2LHERrg.png) –