C#基于任務的異步模式(TAP)

1、C#異步模式分類
基于任務的異步模式(TAP)
基于事件的異步模式(EAP)和異步編程模型模式(APM)
2、基于任務的異步模式(TAP)
基于任務的異步模式(TAP)用單個方法表示異步操作的開始和完成。
3、基本示例

static void Main(string[] args){var task = DoWork();Console.ReadKey();}public static Task DoWork(){for (int i = 0; i < 10; i++){Console.WriteLine(i);Task.Delay(1000);}return Task.CompletedTask;}}

在這里插入圖片描述

4、任務終止示例

static void Main(string[] args){CancellationTokenSource cts = new CancellationTokenSource();CancellationToken token = cts.Token;var task = DoWork(token);Thread.Sleep(100);cts.Cancel();Console.WriteLine("cancel..");Console.ReadKey();}public static Task DoWork(CancellationToken cancellationToken){while (!cancellationToken.IsCancellationRequested){Console.WriteLine("wait..");Thread.Sleep(1000);return Task.CompletedTask;}return Task.FromCanceled(cancellationToken);}}

在這里插入圖片描述

5、進度顯示示例

static void Main(string[] args){var progress = new Progress<double>(p =>{Console.WriteLine($"進度:{p}%");});var task = DoWork(progress);Console.ReadKey();}public static async Task DoWork(IProgress<double> progress){for(int i = 0; i <= 1000; i++){await Task.Delay(10);if(i%100 == 0){double d = i/10.0;progress?.Report(d);}}}}

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/45098.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/45098.shtml
英文地址,請注明出處:http://en.pswp.cn/web/45098.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

從零手寫實現 nginx-28-error pages 指令

前言 大家好&#xff0c;我是老馬。很高興遇到你。 我們為 java 開發者實現了 java 版本的 nginx https://github.com/houbb/nginx4j 如果你想知道 servlet 如何處理的&#xff0c;可以參考我的另一個項目&#xff1a; 手寫從零實現簡易版 tomcat minicat 手寫 nginx 系列 …

夾子音轉換器matlab

操作過程點擊此處觀看 上段時間補習了一下傅里葉變化的知識&#xff0c;突發奇想可以根據此做一款聲音轉換器&#xff0c;使用工科神器Matlab進行完成&#xff0c;并且開發了可操作界面如下圖所示&#xff1a; 功能實現與描述 軟件中可以實現聲音的錄制、回放、文件的保存與…

【C++】動態內存分配(關于構造與析構函數的調用)動態數組類 動態創建多維數組 知識點+代碼學習記錄

一.動態內存分配相關知識點 1.堆和棧內存&#xff1a; 堆內存&#xff1a;動態分配的內存位于堆中&#xff0c;它不受作用域限制&#xff0c;由程序員控制其生命周期。 棧內存&#xff1a;局部變量和函數參數等自動分配的內存位于棧中&#xff0c;由編譯器自動管理。 2.new…

性能測試(2)

jmeter參數化 loadrunner Jmeter IP欺騙&#xff0c;也稱為IP欺詐&#xff0c;是指通過偽裝、篡改IP地址的方式&#xff0c;進行網絡攻擊或欺騙行為。這種行為可能會導致網絡安全問題&#xff0c;包括身份盜竊、數據泄露、DDoS攻擊等。為了保護自己的網絡安全&#xff0c;用戶…

MySQL-表的約束

文章目錄 一、空屬性二、默認值三、zerofill四、列描述五、主鍵刪除主鍵追加主鍵復合主鍵根據主鍵快速索引 六、自增長last_insert_id() 七、唯一鍵八、外鍵class表&#xff08;主表&#xff09;student表&#xff08;從表&#xff09; 一、空屬性 之前我們將表的機構&#xff…

單例模式java

并發的有序性會導致返回空指針 class A{private static volatil A a;private A(){}public A getInstance(){if(anull){synchronized(A.class){if(anull)anew A();}}return a; }anew A();這條語句&#xff0c;他需要&#xff1a;開辟空間&#xff0c;初始化空間&#xff0c;指針…

python熱門面試題三

面試題1&#xff1a;Python中的列表推導式是什么&#xff1f;請給出一個例子。 回答&#xff1a; 列表推導式&#xff08;List Comprehension&#xff09;是Python中一種非常強大且簡潔的構建列表的工具。它允許你通過一個表達式來創建一個新的列表&#xff0c;這個表達式定義…

無顯卡也可以玩大模型-MiniGPT-4篇

MiniGPT-4學習 1.Colab上部署MiniGPT-42.論文摘要3.模型架構4.模型訓練5.總結 1.Colab上部署MiniGPT-4 代碼&#xff1a; https://github.com/Czi24/Awesome-MLLM-LLM-Colab/blob/master/MLLM/MiniGPT-4-colab/MiniGPT-4.md 2.論文摘要 最近的 GPT-4 展示了非凡的多模式能力&…

【設計模式之美】【建造型】工廠模式:通過面向接口編程思路,串起業務流程

文章目錄 一. 簡單工廠&#xff08;Simple Factory&#xff09;第一種簡單工廠&#xff1a;面向接口編程與工廠類&#xff1a;劃分功能職責第二種&#xff1a;單例簡單工廠&#xff1a;節省內存和對象創建的時間 二. 工廠方法&#xff08;Factory Method&#xff09;&#xff1…

文心一言:如何備考軟考架構師

提問&#xff1a;軟考高級:架構師指導&#xff0c;有哪些考點、重點考點有哪些&#xff1f;需要如何備考&#xff1f;案例分析題如何做&#xff1f;論文如何寫&#xff1f; 文心一言回答1700字如下&#xff1a; 針對軟考高級架構師的考試&#xff0c;以下是對考點、重點考點、備…

DiffusionModel-Transformer知識回顧

論文鏈接&#xff1a; Attention Is All You Need CNN vs RNN vs Transformer CNN&#xff08;卷積神經網絡&#xff09; 特點&#xff1a; 局部連接&#xff1a;每個卷積神經元只與輸入數據的局部區域連接&#xff0c;這有助于捕捉局部特征。權重共享&#xff1a;卷積核的權重…

Android筆記:Constructor (xxx) has been changed after generation.

遇到此報錯時&#xff0c;onstructor (xxx) has been changed after generation.是因為修改了實體類字段后什么都不修改的話就會報這個錯 這條信息是關于代碼生成和代碼變更的警告。當你使用某些工具&#xff08;如注解處理器、代碼生成庫等&#xff09;來自動生成代碼時&…

運行在Linux上的程序越來越慢的排查思路

1、通過free -h 排查內存使用情況&#xff0c;是否內存滿了 2、通過df -h 排查磁盤的使用情況&#xff0c;磁盤是否沒有空間了 3、檢查系統資源配置情況&#xff0c;比如使用ulimit -a檢查當前會話的資源限制&#xff0c;如最大文件數、打開文件描述符數等&#xff0c;看是否…

清華計算幾何-ConvexHull(凸包)-求極點InTriangle/ToLeft Test

ConvexHull(凸包) 凸包是什么 凸包是計算幾何一個非常基礎核心的概念。我理解的凸包就是給定一個點集合, 最外圍的點的包圍體就是凸包。如下所示: 極點(ExtremityPoint) 給定的點集合中, 如果一個點存在一條直線, 讓其他所有點都在于該直線的同一側, 則該點為極點。 非極點 …

如何理解electron 的預加載腳本

在 Electron 應用中,預加載腳本(Preload Script)是一個非常重要的概念,它允許你在渲染進程(web 頁面)和主進程之間創建一個安全的橋梁。預加載腳本運行在 Node.js 環境中,但位于渲染進程的一個單獨的上下文中,這意味著它可以訪問 Node.js 的 API,但無法直接訪問 DOM。…

JavaScript進階(7) ----構造函數和原型對象

目錄 構造函數 prototype 定義&#xff1a; 使用場景&#xff1a; constructor 使用場景&#xff1a; 原型proto 原型鏈 定義 特點 instanceof 運算符 原型繼承的基本概念 在JavaScript中&#xff0c;構造函數和原型是面向對象編程的核心概念&#xff0c;它們共同構…

海康工業相機驅動

1.新建基于對話框的MFC程序&#xff0c;界面布局如下 2.修改控件ID&#xff0c;為控件綁定變量 3.創建全局變量&#xff0c;構造函數中初始化變量&#xff0c;初始化對話框界面&#xff0c;補齊各控件按鈕響應函數 全文程序如下&#xff1a; // MFC_GrabimageDlg.h : 頭文件 /…

【動態規劃Ⅰ】斐波那契、爬樓梯、楊輝三角

動態規劃—斐波那契系列 什么是動態規劃斐波那契數組相關題目509. 斐波那契數 Easy1137. 第 N 個泰波那契數 Easy 楊輝三角118. 楊輝三角 Easy 爬樓梯相關題目70. 爬樓梯 Easy746. 使用最小花費爬樓梯 Easy 什么是動態規劃 動態規劃是一種通過將原問題分解為相對簡單的子問題來…

linux下解壓命令

在Linux下&#xff0c;解壓縮文件通常涉及多種命令&#xff0c;具體取決于文件的壓縮格式。以下是一些常用的解壓縮命令&#xff1a; tar.gz / .tgz 如果文件擴展名為 .tar.gz 或 .tgz&#xff0c;你可以使用 tar 命令來解壓縮&#xff1a; tar -xzf filename.tar.gz這里的 -x …

近期幾首小詩匯總-生活~卷

生活 為生活飄零&#xff0c;風雨都不阻 路見盲人艱&#xff0c;為她心點燈 賀中科大家長論壇成立十五周年 科學家園有喜賀 園外丑漢翹望中 曾一學子入我科 正育科二盼長大 憧憬也能入此家 與科學家論短長 園外翹首聽高論 發現有隙入此壇 竟然也能注冊成 入園瀏覽惶然立 此貼…