在多个任务中共享TaskScheduler实例

Lui*_*ipe 0 c# task-parallel-library

我创建了一个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);
Run Code Online (Sandbox Code Playgroud)

[EDIT1]

我的问题部分与以下错误有关:'当前的SynchronizationContext可能不会被用作TaskScheduler'可在此处找到修复

dtb*_*dtb 5

在同一任务调度程序上调度多个任务没有问题.