4

您好我想使用 c# 实现基于事件的异步模式。下面的 Microsoft 文档确实很有帮助,但它完全正确地忽略了实现细节。

http://msdn.microsoft.com/en-us/library/ms228969.aspx

我有哪些实施这种模式的选择?我应该使用 Delegate.BeginInvoke、ThreadPool.QueueUserWorkItem、new Thread()、BackgroundWorker 类还是其他什么?

我正在创建一个简单的代码库。它应该可以在 Windows 窗体、控制台应用程序或 ASP.NET 上下文中使用。

很高兴看到一些示例代码。

4

2 回答 2

4

如果你想实现基于事件的异步模式,那么AsyncFunc是最简单的方法。

它极大地简化了这种模式。您无需为 ThreadPools、Threads 或 BackgroundWorkers 操心。AsyncFunc 为您处理一切。此外,这种方法允许您将业务逻辑与特定于模式的实现分开,从而提高可测试性。

http://asyncfunc.codeplex.com

您可以找到 MSDN 推荐方式和同一组件的 AsyncFunc 实现的比较:

MSDN 与 AsyncFunc

于 2011-01-11T04:06:37.730 回答
1

阅读该文章的这一部分:

http://msdn.microsoft.com/en-us/library/9hk12d4y.aspx

话虽如此,我建议您应该使用的技术取决于您的应用程序,因此如果没有更多关于这些异步操作将做什么以及它们将被调用的频率以及在什么情况下被调用的详细信息,我无法给出关于在您的情况下使用的最佳技术的建议。

于 2010-11-18T13:22:28.200 回答