OnMessageOptions 类
TOC
折叠目录
展开目录
本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

OnMessageOptions 类

 

提供与使用消息泵处理关联的选项 OnMessageOnMessage

命名空间:   Microsoft.ServiceBus.Messaging
程序集:  Microsoft.ServiceBus(Microsoft.ServiceBus.dll 中)

System::Object
  Microsoft.ServiceBus.Messaging::OnMessageOptions

public ref class OnMessageOptions sealed 

名称说明
System_CAPS_pubmethodOnMessageOptions()

新实例初始化 OnMessageOptions 类。

名称说明
System_CAPS_pubpropertyAutoComplete

获取或设置一个值,该值指示是否应调用消息泵 CompleteComplete 对回调完成处理后的消息。

System_CAPS_pubpropertyAutoRenewTimeout

获取或设置在此锁将自动续订的最大持续时间。 此值应大于最长消息锁定持续时间;例如, LockDuration 属性

System_CAPS_pubpropertyMaxConcurrentCalls

获取或设置的最大消息泵应启动回调的并发调用数。

名称说明
System_CAPS_pubmethodEquals(Object^)

(从 Object 继承。)

System_CAPS_pubmethodGetHashCode()

(从 Object 继承。)

System_CAPS_pubmethodGetType()

(从 Object 继承。)

System_CAPS_pubmethodToString()

(从 Object 继承。)

名称说明
System_CAPS_pubeventExceptionReceived

当收到异常时发生。 使您能够通知的消息泵遇到的任何错误。

在调用时 OnMessage, ,客户端启动不断轮询队列或订阅的内部消息泵。 此消息泵包含一个无限循环,将发出 Receive() 调用。 如果调用会超时,它会发出下一个 Receive() 调用。 超时的值是 OperationTimeout 属性 MessagingFactory 所用。 此超时的默认值为 60 秒。 您可以通过更改修改超时 OperationTimeout 属性在创建之前 MessagingFactory 请注意,每个接收操作是计费事件。

void ReceiveMessages()
{
    // Initialize message pump options.
    OnMessageOptions options = new OnMessageOptions();
    options.AutoComplete = true; // Indicates if the message-pump should call complete on messages after the callback has completed processing.
    options.MaxConcurrentCalls = 1; // Indicates the maximum number of concurrent calls to the callback the pump should initiate.
    options.ExceptionReceived += LogErrors; // Enables you to get notified of any errors encountered by the message pump.

    // Start receiving messages.
    QueueClient client = QueueClient.Create("myQueue");
    client.OnMessage((receivedMessage) => // Initiates the message pump and callback is invoked for each message that is recieved, calling close on the client will stop the pump.
    {
        // Process the message.
    }, options);

    Console.WriteLine("Press any key to exit.");
    Console.ReadKey();
}

        void LogErrors(object sender, ExceptionReceivedEventArgs e)
        {
            if (e.Exception != null)
            {
                Console.WriteLine("Error: " + e.Exception.Message);
                Client.Close();
            }
        }

此类型的任何公共静态(Visual Basic 中为 Shared)成员都是线程安全的。但不保证所有实例成员都是线程安全的。

返回页首
显示:
© 2016 Microsoft