本文整理汇总了C#中BrokeredMessage.SafeCompleteAsync方法的典型用法代码示例。如果您正苦于以下问题:C# BrokeredMessage.SafeCompleteAsync方法的具体用法?C# BrokeredMessage.SafeCompleteAsync怎么用?C# BrokeredMessage.SafeCompleteAsync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BrokeredMessage
的用法示例。
在下文中一共展示了BrokeredMessage.SafeCompleteAsync方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ReleaseMessage
private void ReleaseMessage(BrokeredMessage msg, MessageReleaseAction releaseAction, long processingElapsedMilliseconds, long schedulingElapsedMilliseconds, Stopwatch roundtripStopwatch)
{
switch (releaseAction.Kind)
{
case MessageReleaseActionKind.Complete:
msg.SafeCompleteAsync(
this.subscription,
success =>
{
msg.Dispose();
this.instrumentation.MessageCompleted(success);
if (success)
{
this.dynamicThrottling.NotifyWorkCompleted();
}
else
{
this.dynamicThrottling.NotifyWorkCompletedWithError();
}
},
processingElapsedMilliseconds,
schedulingElapsedMilliseconds,
roundtripStopwatch);
break;
case MessageReleaseActionKind.Abandon:
msg.SafeAbandonAsync(
this.subscription,
success => { msg.Dispose(); this.instrumentation.MessageCompleted(false); this.dynamicThrottling.NotifyWorkCompletedWithError(); },
processingElapsedMilliseconds,
schedulingElapsedMilliseconds,
roundtripStopwatch);
break;
case MessageReleaseActionKind.DeadLetter:
msg.SafeDeadLetterAsync(
this.subscription,
releaseAction.DeadLetterReason,
releaseAction.DeadLetterDescription,
success => { msg.Dispose(); this.instrumentation.MessageCompleted(false); this.dynamicThrottling.NotifyWorkCompletedWithError(); },
processingElapsedMilliseconds,
schedulingElapsedMilliseconds,
roundtripStopwatch);
break;
default:
break;
}
}
示例2: ReleaseMessage
private void ReleaseMessage(BrokeredMessage msg, MessageReleaseAction releaseAction, Action completeReceive, Action onReleaseError, CountdownEvent countdown, long processingElapsedMilliseconds, long schedulingElapsedMilliseconds, Stopwatch roundtripStopwatch)
{
switch (releaseAction.Kind)
{
case MessageReleaseActionKind.Complete:
msg.SafeCompleteAsync(
this.subscription,
operationSucceeded =>
{
msg.Dispose();
this.OnMessageCompleted(operationSucceeded, countdown);
if (operationSucceeded)
{
completeReceive();
}
else
{
onReleaseError();
}
},
processingElapsedMilliseconds,
schedulingElapsedMilliseconds,
roundtripStopwatch);
break;
case MessageReleaseActionKind.Abandon:
this.dynamicThrottling.Penalize();
msg.SafeAbandonAsync(
this.subscription,
operationSucceeded =>
{
msg.Dispose();
this.OnMessageCompleted(false, countdown);
onReleaseError();
},
processingElapsedMilliseconds,
schedulingElapsedMilliseconds,
roundtripStopwatch);
break;
case MessageReleaseActionKind.DeadLetter:
this.dynamicThrottling.Penalize();
msg.SafeDeadLetterAsync(
this.subscription,
releaseAction.DeadLetterReason,
releaseAction.DeadLetterDescription,
operationSucceeded =>
{
msg.Dispose();
this.OnMessageCompleted(false, countdown);
if (operationSucceeded)
{
completeReceive();
}
else
{
onReleaseError();
}
},
processingElapsedMilliseconds,
schedulingElapsedMilliseconds,
roundtripStopwatch);
break;
default:
break;
}
}