私のコードは、に似ている...Task.WhenAllのOperationContextヌル
var fetchers = [listOfDataFetchers]
var results = Task.WhenAll(fetchers.Select(x => x.Fetch()).Result
フェッチャは基本的にデータを返すサービスを待っているように、これはタスクと非同期のための完璧なユースケースです。
しかし、フェッチャにはOperationContext.Current
が必要です。この場合は直接挿入できません(はい、私はそれについて確信しています)。
私はすでに、非同期のケースでOperationContext.Currentを固定していると思われたので、.net 4.6.2に更新しようとしましたが(web.configのwcf:disableOperationContextAsyncFlow
からfalse
に設定しました)観察された行動。だから、
、
var oc = OperationContext.Current;
Parallel.ForEach(entries, entry =>
{
OperationContext.Current = oc;
Execute(entry);
});
の線に沿って何かに行くの短いが、私は任意のオプションを持っていますか?