【发布时间】:2020-02-05 15:38:23
【问题描述】:
所以遇到了一些与此非常相似的代码。我只是想知道是否有人可以向我解释一下。
看看它如何使用 RX 调度程序,然后是 Parallel.For 以及在其中一个新的 TaskFactory.StartNew
IDisposable subscription = someObservable.ObserveOn(ThreadPoolScheduler.Instance)
.Subscribe(o =>
{
Parallel.ForEach(xxxs,
x =>
{
var theKey = x.Key;
if (!theTasks.ContainsKey(theKey) ||
theTasks.ContainsKey(theKey) && theTasks[theKey].IsCompleted)
{
theTasks[theKey] = Task.Factory.StartNew(
() =>
{
.....
}
catch (CommunicationObjectAbortedException ex)
{
....
}
catch (ObjectDisposedException ex)
{
....
}
catch (Exception e)
{
....
}
});
}
});
},
ex =>
{
....
},
() =>
{
....
});
}
我知道所有这些事情单独做了什么,但我不确定这里的组合线程效果是什么。谁能猜一猜
【问题讨论】:
标签: asynchronous task-parallel-library system.reactive