我创建了一个TaskScheduler,TaskScheduler将作为参数传递给两个不同的任务。
这样做有什么问题吗?我应该为每个任务创建一个新的TaskScheduler实例吗?
下面是示例示例(为了简单起见,删除了每个任务中的实际代码)
var uiSch = System.Threading.Tasks.TaskScheduler.FromCurrentSynchronizationContext();
var t1 = Task.Factory.StartNew<List<Carrier>>(() =>
{
//does stuff
})
.ContinueWith(previous =>
{
//does stuff
},
System.Threading.CancellationToken.None,
TaskContinuationOptions.OnlyOnRanToCompletion,
uiSch);
var t2 = Task.Factory.StartNew<List<Logic.WarehouseLogic.Warehouse>>(() =>
{
//does stuff
})
.ContinueWith(previous =>
{
//does stuff
},
System.Threading.CancellationToken.None,
TaskContinuationOptions.OnlyOnRanToCompletion,
uiSch);EDIT1
我的问题部分与以下错误有关:“当前的SynchronizationContext可能不能用作TaskScheduler”可以找到here
发布于 2013-01-03 15:48:47
在同一个任务调度程序上调度多个任务没有问题。
https://stackoverflow.com/questions/14141911
复制相似问题