2013-01-03 28 views
0

我創建了一個的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

回答

5

在同一個任務調度程序中調度多個任務沒有問題。