1 回答
TA贡献1828条经验 获得超13个赞
这对于Parallel.ForEach循环来说是一个很好的案例,它将自动将循环处理分布在多个线程中。很容易将您的代码重新安排到这样的循环中,并利用内置的并行库来启用并行处理。这当然假设顺序并不重要(而且它似乎并不基于我们所能看到的一点点)。
编辑:如果您确实需要 100 或 200 的特定批次,如评论中所述,您可以使用System.Collections.Concurrent.Partitioner类根据需要打破并行循环,这篇 SO 帖子实际上很好地描述了如何用它。
Parallel.ForEach(devices, (device) =>
{
// register device into IoT hub
Device device;
RegistryManager registryManager = RegistryManager.CreateFromConnectionString("connectionString");
device = await registryManager.AddDeviceAsync(new Device(deviceId));
// send message to iot hub
DeviceClient deviceClient;
await deviceClient.SendEventAsync("data");
});
- 1 回答
- 0 关注
- 173 浏览
添加回答
举报