我使用的是新的异步有麻烦/等待在C#中的工具。 这里是我的情况:
static async Task<bool> ManageSomeRemoteTask(int Id, bool flag)
{
var result = await serviceClient.AuthenticateIdAsync(Id);
[... Setup Some Data ...]
await serviceClient.LongAndSlowRemoteCallAsync(Data);
}
static void SendATonOfJunkToSomeWebServiceThatDoesntSupportBatches
{
var myTasks = Dictionary<int, Task<bool>>();
while(IdsLeftToProcess > 0 )
{
Task<bool> t = ManageSomeRemoteTask(Id, true);
myTasks.Add(IdsLeftToProcess ,t);
myTasks[IdsLeftToProcess].Start();
IdsLeftToProcess --;
}
Task.WaitAll(myTasks.Values.ToArray()); //Wait until they are all done
[... Report statistics ...]
}
我在这1个问题,当我尝试运行此,我就开始()的错误信息得到一个InvalidOperationException“ 似乎此错误消息不上来的谷歌或冰,所以我不知道这意味着什么。 这是我的头号关注,如何得到这个运行。 我也试过TaskFactory.StartNew(),但不知道如何将参数传递给我的方法方式。