Azure 移动服务客户端 - 在多个 InsertAsync 任务上使用 WaitAll
本文关键字:任务 InsertAsync WaitAll 服务 移动 客户端 Azure | 更新日期: 2023-09-27 18:31:34
我希望能够启动多个InsertAsync操作,然后等到完成。[形式]形式的东西
Task[] tasks = new Task[10];
try
{
IMobileServiceTable<Record> table = mobileService.GetTable<Record>();
for (int i = 0; i < 10; i++)
{
Record rcd = new Record();
tasks[i] = table.InsertAsync(rcd);
}
}
catch { Assert.fail(); };
try
{
Task.WaitAll(tasks, 10000);
System.Diagnostics.Debug.WriteLine("WaitAll() has not thrown exceptions.");
}
catch { Assert.fail(); };
WaitAll 只是超时,当我查看任务数组中的任务时,没有一个正在运行。很明显,我使用了错误的模式,但看不到在哪里。任何见解都非常感谢!
好的;解决了。仍然不确定为什么。
我在问题中列出的原始代码是在异步例程中;我们称之为 insertAsync()。它是同步调用的,因为我不希望调用者在 insertAsync 完成之前继续。
我之前写的是
Task<bool> t = insertAsync();
t.Wait();
但是如果你这样做,一切都会挂起 - 即没有一个表格插入开始。
注释掉 t.Wait(),一切正常。