.NET 4.5 中包含取消架構(gòu),允許以標(biāo)準(zhǔn)方式取消長時間運行的任務(wù)。每個阻塞調(diào)用都應(yīng)支持這種機(jī)制。但目前,并不是所有阻塞調(diào)用都實現(xiàn)了這個新技術(shù)。已經(jīng)實現(xiàn)了這種機(jī)制的技術(shù)有任務(wù)(http://www.cnblogs.com/afei-24/p/6907840.html),并發(fā)集合類(http://www.cnblogs.com/afei-24/p/6836976.html),并行LINQ(http://www.cnblogs.com/afei-24/p/6860753.html)和幾種同步機(jī)制。
  取消架構(gòu)基于協(xié)作行為,它不是強(qiáng)制的。長時間運行的任務(wù)會檢查它是否被取消,并返回控制權(quán)。
  支持取消的方法接受一個CancellationToken參數(shù)。這個類定義了IsCancellationRequested屬性,其中長時間運行的操作可以檢查它是否應(yīng)終止。使用Register()方法注冊一個將在取消此 System.Threading.CancellationToken 時調(diào)用的委托。它在調(diào)用Cancel()方法取消操作時調(diào)用。

1.Parallel.For()方法的取消
  Parallel類提供了For()方法的重載版本,在重載版本中,可以傳遞ParallelOptions類型的參數(shù)。使用ParallelOptions類型,可以傳遞一個CancellationToken參數(shù)。CancellationToken參數(shù)通過創(chuàng)建CancellationTokenSource來生成。由于CancellationTokenSource實現(xiàn)了ICancelableOperation接口,因此可以用CancellationToken注冊,并允許使用Cancle(),CancleAfter()等方法取消操作。
  示例:

移動開發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

    static void CancelParallelFor()
        {            var c
        
		

網(wǎng)友評論