C#で新しいasync/awaitツールを使用する際に問題があります。ここに私のシナリオです:私はこれを実行しようとすると、私はその中の1つの問題を持っている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 ...]
}
、私はエラーメッセージを表示して()スタートでInvalidOperationExceptionが取得」スタートを約束スタイルのタスクに呼び出されない場合があります。 "このエラーメッセージはGoogleやBingには現れていないように見えます。これが私の第一の懸念事項です。これをどのように実行するか。私もTaskFactory.StartNew()を試しましたが、私のメソッドにそのようにパラメータを渡す方法を理解していませんでした。
'myTasks [IdsLeftToProcess] .Start();'は 't.Start()'によってよりよく表現されていました。(最初に必要だった場合) – spender