在一些异步操作之后使用委托作为回调是否正确?

时间:2009-07-28 12:58:55

标签: c# delegates

例如...如果我有一个执行某些异步操作的方法,并且我想在完成后通知/调用某种回调,我会使用委托吗?

我似乎无法理解这是如何工作的。谁能指出我正确的方向?

我看的东西就像......

public class ContentContext
{
        public delegate void SuccessCallback(Dictionary<String, String> content);

        public void DoSomeAsyncOpertaion(SuccessCallback successCallback)
        {
            //do something and then fire the callback
        }
}

但有些事情闻起来很有趣。仍然是这个c#东西的初学者,请原谅我的无知;)

干杯 Ĵ

3 个答案:

答案 0 :(得分:2)

没关系,但回调将在与异步操作相同的线程上调用。

如果这是一个问题,请在.Net,SynchronizationContext,BackgroundWorder ...

中获取有关线程的一些信息。

答案 1 :(得分:1)

这对我来说很好看。虽然您可以保存代理声明,但只需使用Action&lt;&gt;

我相信official pattern是使用IAsyncResult,所以我建议你开发一个frameowrk。

答案 2 :(得分:0)

我认为没关系。您也可以使用AsyncCallback Delegate