Can Action可以安全地用於本質上以這種方式觸發並忘記返回類型爲void的方法嗎?動作<T>火和遺忘?
public static void BeginAction(Foo input, Action<Foo> action)
{
action.BeginInvoke(input, EndAction, action);
}
public static void EndAction(IAsyncResult result)
{
(result.AsyncState as Action).EndInvoke(result);
}
Id將使用它將記錄異步複製到數據庫中,'Foo'將是要複製的對象列表。永遠不會有返回值,但我會記錄任何異常。不知道是否建議.. – 2011-04-13 22:39:59
構建代碼以保證調用EndInvoke()是一種最佳實踐。如果委託後面的方法拋出異常,那麼調用EndInvoke()將重新拋出同一異常實例。但是,如果異步方法有它自己的異常處理並保證(a)該方法返回void並且(b)該方法永遠不會產生異常,那麼你就是安全的 – STW 2011-04-13 22:48:26