国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

做淘寶客網(wǎng)站用什么系統(tǒng)谷歌瀏覽器安卓版

做淘寶客網(wǎng)站用什么系統(tǒng),谷歌瀏覽器安卓版,請(qǐng)人做網(wǎng)站收費(fèi)多少,旅游電子商務(wù)與網(wǎng)站建設(shè)1.Thread的使用 Thread的使用參考:【C#】Thread的使用 2.CancellationTokenSource 的使用 CancellationTokenSource在C#中用于取消長時(shí)間運(yùn)行的操作,如異步或后臺(tái)任務(wù)。它允許你從外部請(qǐng)求一個(gè)操作的取消,并且被取消的操作可以通過檢查Ca…

1.Thread的使用?

Thread的使用參考:【C#】Thread的使用

2.CancellationTokenSource 的使用

CancellationTokenSource在C#中用于取消長時(shí)間運(yùn)行的操作,如異步或后臺(tái)任務(wù)。它允許你從外部請(qǐng)求一個(gè)操作的取消,并且被取消的操作可以通過檢查CancellationToken來響應(yīng)這個(gè)請(qǐng)求。

下面是一個(gè)簡單的示例,展示了如何使用CancellationTokenSource

using System;
using System.Threading;
using System.Threading.Tasks;class Program
{static void Main(){// 創(chuàng)建一個(gè) CancellationTokenSource 對(duì)象CancellationTokenSource cts = new CancellationTokenSource();// 從 CancellationTokenSource 中獲取 CancellationTokenCancellationToken token = cts.Token;// 啟動(dòng)一個(gè)異步任務(wù)并傳入 CancellationTokenTask task = Task.Run(async () =>{for (int i = 0; i < 10; i++){// 檢查是否已請(qǐng)求取消if (token.IsCancellationRequested){Console.WriteLine("任務(wù)已被取消");return;}Console.WriteLine($"正在執(zhí)行任務(wù)... {i}");await Task.Delay(500); // 模擬耗時(shí)操作}Console.WriteLine("任務(wù)完成");}, token);// 給任務(wù)一些時(shí)間運(yùn)行Thread.Sleep(3000);// 請(qǐng)求取消任務(wù)cts.Cancel();// 等待任務(wù)完成task.Wait();}
}

在這個(gè)例子中,我們創(chuàng)建了一個(gè)CancellationTokenSource實(shí)例,并從中獲取了CancellationToken。然后我們啟動(dòng)了一個(gè)異步任務(wù),并將CancellationToken作為參數(shù)傳遞給它。在任務(wù)中,我們使用await Task.Delay來模擬長時(shí)間運(yùn)行的操作,并在每次循環(huán)中檢查IsCancellationRequested屬性,以確定是否已經(jīng)請(qǐng)求了取消。如果cts.Cancel()被調(diào)用,那么IsCancellationRequested將變?yōu)?code>true,從而終止任務(wù)的執(zhí)行。

需要注意的是,一旦CancellationTokenSource.Cancel()被調(diào)用,就不能再次取消相同的任務(wù),除非重新創(chuàng)建一個(gè)新的CancellationTokenSource實(shí)例。此外,當(dāng)任務(wù)被取消時(shí),它會(huì)拋出一個(gè)TaskCanceledException,這通常需要在調(diào)用方進(jìn)行處理,或者你可以通過CancellationToken.ThrowIfCancellationRequested()方法顯式拋出異常。

?

3.CancellationTokenSource 與Thread的啟動(dòng)、取消的區(qū)別??

在C#中,ThreadCancellationTokenSource都是用于控制異步操作和線程管理的重要工具,但它們?cè)谠O(shè)計(jì)目的和使用方式上有著本質(zhì)的區(qū)別。下面我將詳細(xì)解釋這兩者之間的區(qū)別,并通過示例來說明。

Thread

Thread類允許你創(chuàng)建一個(gè)新的線程,在這個(gè)線程上執(zhí)行代碼。這是早期多線程編程的主要方式,但是直接管理線程存在一些問題:

  • 資源消耗:每個(gè)線程都有一定的開銷,過多的線程會(huì)消耗大量系統(tǒng)資源。
  • 取消操作:直接停止一個(gè)線程是不安全的,因?yàn)榫€程可能處于任何狀態(tài),直接中斷可能會(huì)導(dǎo)致數(shù)據(jù)損壞或資源泄露。
  • 同步問題:需要手動(dòng)處理鎖和其他同步機(jī)制以避免競態(tài)條件。

CancellationTokenSource

CancellationTokenSource是.NET Framework 4.0引入的一個(gè)特性,它提供了一種優(yōu)雅地取消長時(shí)間運(yùn)行操作的方式。它與Taskasync/await一起使用,而不是直接與Thread結(jié)合。CancellationTokenSource的優(yōu)點(diǎn)包括:

  • 取消請(qǐng)求:可以向正在運(yùn)行的任務(wù)發(fā)送取消請(qǐng)求,任務(wù)可以選擇響應(yīng)并優(yōu)雅地結(jié)束。
  • 資源管理:使用CancellationTokenSource通常不會(huì)造成資源過度消耗,因?yàn)樗蕾囉谌蝿?wù)調(diào)度器和異步操作。
  • 易于使用:提供了API來檢查取消狀態(tài),無需顯式管理線程。

示例對(duì)比

使用Thread?

using System;
using System.Threading;class Program {static void Main() {Thread thread = new Thread(Run);thread.Start();Console.WriteLine("Press any key to cancel the thread...");Console.ReadKey();thread.Abort(); // 不推薦使用Abort,因?yàn)樗赡茉谌我恻c(diǎn)中斷線程}static void Run() {while (true) {Console.WriteLine("Running...");Thread.Sleep(1000);}}
}

使用CancellationTokenSource

using System;
using System.Threading;
using System.Threading.Tasks;class Program {static async Task Main() {CancellationTokenSource cts = new CancellationTokenSource();CancellationToken token = cts.Token;Task task = Task.Run(async () => await Run(token));Console.WriteLine("Press any key to cancel the task...");Console.ReadKey();cts.Cancel(); // 請(qǐng)求取消await task; // 等待任務(wù)完成或被取消}static async Task Run(CancellationToken token) {while (!token.IsCancellationRequested) {Console.WriteLine("Running...");await Task.Delay(1000, token);}Console.WriteLine("Task cancelled.");}
}

?在上面的示例中,使用CancellationTokenSourceTask的方式更安全且更容易管理取消邏輯。

?

?

?

http://m.aloenet.com.cn/news/30603.html

相關(guān)文章:

  • 聊城手機(jī)網(wǎng)站建設(shè)公司seo技術(shù)306
  • 具有營銷價(jià)值好的網(wǎng)站武漢seo優(yōu)化代理
  • 網(wǎng)站建設(shè)是好的競價(jià)賬戶托管外包
  • 有沒有專業(yè)做二維碼連接網(wǎng)站在營銷技巧第三季
  • 圖片制作視頻的appseo宣傳
  • 如何提高網(wǎng)站百度權(quán)重如何去除痘痘有效果
  • 鄭州官網(wǎng)網(wǎng)絡(luò)營銷外包上海網(wǎng)站seo策劃
  • 平度疫情最新消息成都seo推廣
  • 品牌網(wǎng)站建設(shè)有哪些內(nèi)容吳中seo網(wǎng)站優(yōu)化軟件
  • 網(wǎng)站長春網(wǎng)站建設(shè)惠州網(wǎng)絡(luò)推廣平臺(tái)
  • 網(wǎng)站制作怎樣做背景贛州seo唐三
  • 網(wǎng)站建設(shè)公司相關(guān)資質(zhì)精準(zhǔn)客源app
  • 做百度網(wǎng)上搜索引擎推廣最好網(wǎng)站杭州seo網(wǎng)站排名優(yōu)化
  • 攝影網(wǎng)站建設(shè)內(nèi)容網(wǎng)站運(yùn)營一個(gè)月多少錢
  • 怎么做網(wǎng)站多少錢蘇州網(wǎng)站制作推廣
  • 做網(wǎng)站劃算還是做app劃算營銷型網(wǎng)站和普通網(wǎng)站
  • 做模版網(wǎng)站打開百度網(wǎng)站首頁
  • 優(yōu)化網(wǎng)站哪家好競價(jià)排名是按照什么來計(jì)費(fèi)的
  • 視頻網(wǎng)站seo實(shí)戰(zhàn)免費(fèi)私人網(wǎng)站建設(shè)軟件
  • 中山建設(shè)監(jiān)理有限公司 網(wǎng)站如何提高網(wǎng)站的搜索排名
  • wordpress上傳函數(shù)四川seo哪里有
  • 很好用的炫酷WordPress主題上海seo顧問
  • dede新聞網(wǎng)站源碼營銷課程培訓(xùn)視頻
  • 晉州做網(wǎng)站響應(yīng)式模版移動(dòng)優(yōu)化
  • 建材公司網(wǎng)站建設(shè)方案點(diǎn)擊器 百度網(wǎng)盤
  • 深圳官方網(wǎng)站設(shè)計(jì)長沙網(wǎng)站策劃
  • 太原營銷網(wǎng)站建設(shè)制作平臺(tái)網(wǎng)站監(jiān)測(cè)
  • 學(xué)網(wǎng)站開發(fā)培訓(xùn)班seo為什么要進(jìn)行外部優(yōu)化
  • 網(wǎng)站建設(shè)源代碼上傳百度網(wǎng)頁怎么制作
  • 企業(yè)網(wǎng)站制作簡介bt螞蟻