0

TaskSchedulerを作成し、2 つの異なるタスク間で引数として渡しています。

やっても問題ないですか?タスクごとに新しい 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);

[編集1]

私の質問は、次のエラーに部分的に関連していました:「現在の SynchronizationContext は、TaskScheduler として使用されていない可能性があります

4

1 に答える 1

5

同じタスク スケジューラで複数のタスクをスケジュールしても問題はありません。

于 2013-01-03T15:48:47.210 に答える