我的查询
我在从IoT Hub持续接收数据时遇到问题。
我使用iot-hub-csharp-csharp-getstarted作为参考来创建我的ASPNet MVC应用程序
以下是从IoT Hub接收数据的功能
private static async Task ReceiveMessagesFromDeviceAsync(string partition, CancellationToken ct)
{
var eventHubReceiver = eventHubClient.GetDefaultConsumerGroup().CreateReceiver(partition, DateTime.UtcNow);
while (true)
{
if (ct.IsCancellationRequested) break;
EventData eventData = await eventHubReceiver.ReceiveAsync();
if (eventData == null) continue;
string data = Encoding.UTF8.GetString(eventData.GetBytes());
//Console.WriteLine("Message received. Partition: {0} Data: '{1}'", partition, data);
}
}
var 字符串数据 中收到的值 但它在一段时间后出现在循环中(而在Console应用程序中将数据发送到物联网中心,它会不断发送数据)
通过以下函数调用上述函数
private void SetHubs()
{
eventHubClient = EventHubClient.CreateFromConnectionString(connectionString, iotHubD2cEndpoint);
var d2cPartitions = eventHubClient.GetRuntimeInformation().PartitionIds;
CancellationTokenSource cts = new CancellationTokenSource();
var tasks = new List<Task>();
foreach (string partition in d2cPartitions)
{
tasks.Add(ReceiveMessagesFromDeviceAsync(partition, cts.Token));
}
//Task.WaitAll(tasks.ToArray());
}
我的问题
所以在接收MVC应用程序中(使用上面的方法 ReceiveMessagesFromDeviceAsync ,它来自循环(虽然它在内部,而loop ==&gt; while(true)) 只有大约50-70条消息被接收,之后它存在while循环, 我在这里失踪的是什么?