本文整理汇总了C#中Domain.Consume方法的典型用法代码示例。如果您正苦于以下问题:C# Domain.Consume方法的具体用法?C# Domain.Consume怎么用?C# Domain.Consume使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Domain
的用法示例。
在下文中一共展示了Domain.Consume方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: StartCollectingEvents
public void StartCollectingEvents(Domain propogationDomain)
{
Task.Factory.StartNew(
() =>
{
while (true)
{
RaisedEvent @event;
if (buffer.TryDequeue(out @event))
{
propogationDomain.Consume(@event);
}
else
{
//We empty the queue before stopping as this queue is in-memory only.
if (cancellationTokenSource.Token.IsCancellationRequested)
return;
nudge.WaitOne();
}
}
})
.ContinueWith(task => stoppedSignal.Set());
}
示例2: StartCollectingEvents
public void StartCollectingEvents(Domain propogationDomain)
{
Task.Factory.StartNew(
() =>
{
while (true)
{
BrokeredMessage message;
try
{
message = receiver.Receive(receiveWaitTime);
if (message == null)
{
Trace.TraceInformation("No message waiting");
continue;
}
}
catch (OperationCanceledException)
{
Trace.TraceInformation("Stopping receiver");
stopped.Set();
return;
}
catch (Exception exception)
{
if (exception is UnauthorizedAccessException |
exception is CommunicationException |
exception is MessagingException |
exception is TimeoutException |
exception is MessagingCommunicationException |
exception is ServerBusyException)
{
reopenReceiver(receiver, exception, receiverCancellationTokenSource.Token);
continue; // Receiver loop.
}
Trace.TraceError("Stopping event receiver which died with exception:\n{0}", exception);
stopped.Set();
throw;
}
var raisedEvent = message.ConvertToEvent();
propogationDomain.Consume(raisedEvent);
message.Complete();
}
},
TaskCreationOptions.LongRunning);
}