gpt4 book ai didi

c# - Azure 移动服务客户端 - 在多个 InsertAsync 任务上使用 WaitAll

转载 作者:行者123 更新时间:2023-12-03 04:37:21 26 4
gpt4 key购买 nike

我希望能够启动多个 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() 一切正常。

关于c# - Azure 移动服务客户端 - 在多个 InsertAsync 任务上使用 WaitAll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18818506/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com