Microsoft最近发布了 Windows Azure Service Bus Client SDK,它为所有的异步API增加了基于System.Threading.Tasks.Task 的版本,同时还能编写异步可读的代码。最新版本基于.NET Framework 4编译,因此它能够在Visual Studio 2012以及它之前的副本中使用。
\u0026#xD;Windows Azure Service Bus团队的高级软件开发工程师Scott Seely在官方的MSDN博客文章Task Based APIs for Service Bus中利用Microsoft.ServiceBus.NamespaceManager和Microsoft.ServiceBus.Messaging.QueueClient示范了该SDK的运行方式。
\u0026#xD;在示例代码中,他首先验证了队列是否存在,如果队列不存在则创建队列,然后再发送/接收一个来自于队列的消息。为了让客户端CPU能够执行其他的活动而不必等待消息的出现和返回,Scott在演示代码中的消息交付之前增加了5秒钟的延迟。
\u0026#xD;Windows Azure Service Bus Client SDK中的所有异常只有在任务完成时才会被抛出,同时该SDK还具有保持住任务和等待任务完成的能力,用户可以通过NuGet 或者Visual Studio中的包管理控制台安装该SDK。
\u0026#xD;除了上面提到的特性之外,Windows Azure Service Bus Client SDK还支持消息浏览,用户还能够通过Microsoft.ServiceBus.Messaging.EntityStatus 枚举挂起和恢复发送到及来自于队列和主题的发送和接收消息,另外还可以通过AutoDeleteOnIdle 属性所指定的时间间隔自动删除空闲队列、主题或者订阅。
\u0026#xD;最近发布的SDK引入了一种事件驱动或者称为推模式的消息编程模型,该模型可做为接收循环的一个替代模型同时它还支持并行消息处理,另外该SDK能够按照多种等级处理消息。
\u0026#xD;查看英文原文:Windows Azure Service Bus Client SDK with Task Based Asynchronous API