我break
想我async
方法中得到事件循環只執行一次for loop
,但是從事件中心得到的事件不斷被一次又一次地調用方法。如何ASYN方法,不斷地從eventhub
我想執行循環只有一次,當得到data == "mytestdata"
。
如果它的真實發送通知郵件,並且需要打破,因爲我不想再發送郵件,因爲我已經發送了它。
我也嘗試過使用isMailSend = true;
,但它執行雙向。
bool isMailSend = false;
async Task IEventProcessor.ProcessEventsAsync(PartitionContext context, IEnumerable<EventData> messages)
{
foreach (EventData eventData in messages)
{
string data = Encoding.UTF8.GetString(eventData.GetBytes());
if (data == "mytestdata")
{
//send mail notification
isMailSend = true;
Console.WriteLine("mail send ");
break;
}
Console.WriteLine(string.Format("Message received. Partition: '{0}', Data: '{1}'",
context.Lease.PartitionId, data));
}
//Call checkpoint every 1 minutes, so that worker can resume processing from 1 minutes back if it restarts.
if (this.checkpointStopWatch.Elapsed > TimeSpan.FromMinutes(1))
{
await context.CheckpointAsync();
this.checkpointStopWatch.Restart();
}
}