C#之非同步程式設計基礎--Task用法簡單總結
Task類
Task類可以有返回值,返回值可以有多個,對於返回值的操作,可以使用Task<TResult> 類。也可以沒有返回值,通常以非同步方式來呼叫。看下下面一個簡單的例子。
首先定義了一個Task物件,返回值為string。
有一個Start()方法,一旦要開啟一個任務,就要呼叫該方法,也可用Task的類工廠模式,則不需要呼叫此方法即可開啟任務(下面會講到)。Result是task的屬性,是該Task的返回值。
當然也可以沒有返回值。
下面的例子是呼叫類工廠模式來啟動Task,求1-100的和值,可以看到不用呼叫Start()方法即可以開啟。
對於沒有返回值的Task,可用Wait方法等待其執行完成,而且在等待的過程中,是會阻塞其主執行緒的,即主執行緒不會再往下執行,必須等該Task執行完畢才會繼續往下執行。Task的取消用的是Cancel方法。
,
相關推薦
C#之非同步程式設計基礎--Task用法簡單總結
Task類 Task類可以有返回值,返回值可以有多個,對於返回值的操作,可以使用Task<TResult> 類。也可以沒有返回值,通常以非同步方式來呼叫。看下下面一個簡單的例子。 首先定義了一個Task物件,返回值為string。 有一個Start()方
(七)C 之WinForm程式設計-簡單版文字編輯器
C#WinForm程式設計之簡單版文字編輯器在這個最簡單的文字編輯器中,我們要實現一下的功能:文字字型加粗文字文字變成斜體文字文字加下劃線文字在視窗居中顯示改變文字字型大小為了實現上面的功能,我們需要的控制元件如下:BottonLabelTextBoxRichText
(七)C#之WinForm程式設計-簡單版文字編輯器
C#WinForm程式設計之簡單版文字編輯器 在這個最簡單的文字編輯器中,我們要實現一下的功能: 文字字型加粗 文字文字變成斜體 文字文字加下劃線 文字在視窗居中顯示 改變文字字型大小 為了實現上面的功能,我們需要的控制元件如下: Botton
Linux學習之shell 程式設計基礎(二)
一、bash環境變數 HOME、MAIL、SHELL、PATH 等,環境變數大都用大寫字母組成 [[email protected] dalianmao]# echo $SHELL /bin/bash [[email protected] dalianmao]# echo
Linux學習之shell 程式設計基礎(一)
一、linux中經常和正則表示式聯合使用的工具 grep sed awk(自己去研究吧). 二,以grep為例,有以下正則操作 特殊符號彙總 特殊符號 代表意義 [:alnum:] 代表英文
async 和 await 之非同步程式設計的學習
async修改一個方法,表示其為非同步方法。而await表示等待一個非同步任務的執行。js方面,在es7中開始得以支援;而.net在c#5.0開始支援。本文章將分別簡單介紹他們在js和.net中的基本用法。 一、在js中的實現 js中
利用C++11實現執行緒task的簡單封裝
#include <functional> #include <thread> #include <type_traits> /*Compile only if 'F' is callable. F maybe function, la
JAVASE之 java程式設計基礎
1.關鍵字 定義:被Java語言賦予了特殊含義,用做專門用途的字串(單詞) 特點:關鍵字中所有字母都為小寫 (通俗的說就是在JAVA中有特殊含義的單詞) 例如:int,byte,short,enum,switch,return… 2.識別符號 凡是可以起名的地方
C#沉澱-非同步程式設計 二
針對於await表示式的異常處理 using System; using System.Net; using System.Diagnostics; using System.Threading.Tasks; using System.Threading;
Linux C 之檔案程式設計(2)
read & write #read 從與檔案描述符 fd 相關的檔案中讀取 n bytes 個位元組的資料到 buf 中,返回實際讀入的位元組數; ##write 將字串 buf 中前 n bytes 個位元組的資料寫入與檔案描述符 fd 關聯的檔案中,
C#沉澱-非同步程式設計 三
GUI程式在設計上要求所有的顯示變化都必須在主GUI執行緒中完成,Windows程式是通過訊息來實現這一點的,訊息被放入由訊息泵管理的訊息佇列中。 訊息泵從列隊中取出一條訊息,並呼叫它的處理程式程式碼。當程式程式碼完成時,訊息泵獲取下一條訊息並迴圈這個過程。
C#沉澱-非同步程式設計 四
BackgroundWorker類 async/await特性適合那些需要在後臺完成的不相關的小任務,有時候,需要另建一個執行緒,在後臺持續執行以完成某項工作,並不時地與主執行緒進行通訊,BackgroundWorker類就是為此而生。 BackgroundW
python學習之-網路程式設計基礎(網路基本知識)
一.作業系統基礎 作業系統:(Operating System,簡稱OS)是管理和控制計算機硬體與軟體資源的計算機程式,是直接執行在“裸機”上的最基本的系統軟體,任何其他軟體都必須在作業系統的支援下才能執行。 注:計算機(硬體)->os->應用軟體 二.網路通訊原理
(九)C 之WinForm程式設計-升級版文字編輯器
C#WinForm程式設計之升級版文字編輯器前面的那篇博文講解了一個簡單版本的文字編輯器,實現了一些最簡單的功能。那麼這裡我們對那個文字編輯器做一個升級吧!既然是升級版,那麼就要做的像Word一點咯!首先我們來看一下我設計的介面吧! 檔案(F): 編輯(E): 格
Scala之——Scala程式設計基礎
1. Scala 基礎1.1.宣告變數 package com.lyz.scala /** * Created by liuyazhuang */ object VariableDemo { def main(args: Array[String]) {
學習 Promise,掌握未來世界 JS 非同步程式設計基礎
其實想寫 Promise 的使用已經很長時間了。一個是在實際編碼的過程中經常用到,一個是確實有時候小夥伴們在使用時也會遇到一些問題。 Promise 也確實是 ES6 中 對於寫 JS 的方式,有著真正最大影響的 API 特性之一。 本文是實際使用使用過程中的一個總結 看一
.NET4.5新特性之非同步程式設計(Async和Await)的使用
一、簡介 首先來看看.net的發展中的各個階段的特性:NET 與C# 的每個版本釋出都是有一個“主題”。即:C#1.0託管程式碼→C#2.0泛型→C#3.0LINQ→C#4.0動態語言→C#4.5非同步程式設計 下面我來簡單的介紹一下非同步程式設計:非同步程式設計,在 .NET Framework
Ruby學習之CGI程式設計基礎
Ruby 是一門通用的語言,不僅僅是一門應用於WEB開發的語言,但是呢, Ruby 在WEB應用及WEB工具中的開發是最常見的。我們使用Ruby不僅可以編寫自己的SMTP伺服器,FTP程式,或Ruby Web伺服器,而且還可以使用Ruby進行CGI程式設計。為了瞭解CGI是如何工作的,我們來看下
C++之STL中set的用法總結
set概述 和vector、list不同,set、map都是關聯式容器。set內部是基於紅黑樹實現的。插入和刪除操作效率較高,因為只需要修改相關指標而不用進行資料的移動。 在進行資料刪除操作後,迭代器會不會失效呢?刪除set的資料時,實際的操作是刪除紅黑樹中
C#之ProtoBuf應用基礎
復雜 ole serial console bdb ado cde 工作 import protobuf-csharp-sport 的下載地址 : https://github.com/jskeet/protobuf-csharp-port 一 : 準備工作 ①,將下載的文