0
我的代碼是類似於...Task.WhenAll的OperationContext空
var fetchers = [listOfDataFetchers]
var results = Task.WhenAll(fetchers.Select(x => x.Fetch()).Result
作爲提取器基本上是等待服務恢復數據,這是一個完美的用例任務和異步。
然而,fetchers需要OperationContext.Current
,我不能直接在這種情況下注入(是的,我相信這一點)。
我已經嘗試更新到.net 4.6.2,因爲它應該修復異步情況下的OperationContext.Current(並且在web.config中設置wcf:disableOperationContextAsyncFlow
到false
),但這不會導致任何更改觀察到的行爲。
因此,短的要東西沿着
var oc = OperationContext.Current;
Parallel.ForEach(entries, entry =>
{
OperationContext.Current = oc;
Execute(entry);
});
行我有什麼選擇?