您好我想使用c#实现基于事件的异步模式。下面的Microsoft文档确实很有帮助,但是它正确地省略了实现细节。
http://msdn.microsoft.com/en-us/library/ms228969.aspx
我有什么选择来实现这种模式?我应该使用Delegate.BeginInvoke,ThreadPool.QueueUserWorkItem,新的Thread(),BackgroundWorker类还是其他什么?
我正在创建一个简单的代码库。它应该可以在Windows窗体,控制台应用程序或ASP.NET上下文中使用。
看一些示例代码会很棒。
答案 0 :(得分:4)
如果你想实现基于事件的异步模式,那么 AsyncFunc 是最简单的方法。
它大大简化了这种模式。您不必担心ThreadPools,Threads或BackgroundWorkers。 AsyncFunc为您处理一切。此外,这种方法允许您将业务逻辑与特定于模式的实现分开,从而提高可测试性。
您可以找到MSDN推荐方式与同一组件的AsyncFunc实现的比较:
答案 1 :(得分:1)
阅读该文章的这一部分:
http://msdn.microsoft.com/en-us/library/9hk12d4y.aspx
话虽如此,我建议您应该使用的技术取决于您的应用程序,因此,如果没有更多关于这些异步操作将要执行的操作以及调用它们的频率以及在何种情况下调用它们的详细信息,我可以在你的情况下,不建议使用最好的技术。