我将如何实现基于事件的异步模式?

Jun*_*per 5 c# asynchronous event-based-programming

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

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

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

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

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

Sta*_*erc 5

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

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


Bra*_*ery 1

阅读该文章的这一部分:

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

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