async 和 await 的高階

2022-01-22 16:05:03 字數 2957 閱讀 8877

異常的捕獲:

static

void main(string

args)

: "); //

任務狀態

console.writeline($"

: "); //

任務完成狀態標識

console.writeline($"

: "); //

任務是否有未處理的異常標識

console.readline();

}private

static

async

task doexceptionasync());}

catch

(exception e)

出現異常!,異常時:");}}

}

結果:

也許你有疑問:

但是:因為:任務沒有被取消,並且異常都已經處理完成!

算了,這個太簡單了,有任務的等待,也有任務的取消,.......

**;

private

static

void main(string

args)

");console.read();

}//////

統計字元數量

/// ///

///private

static

async task countcharactersasync(string

address)

這裡還有我們兩個靜態的方法:可採用 task 的兩個靜態方法 waitall() 和 waitany() 。

private

static

int time = 0

;

static

void main(string

args)

;task.waitall(tasks);

//或則:task.waitany(tasks);

console.writeline($

"t1.: ");

console.writeline($

"t2.: ");

console.readline();

}//////

統計字元數量

/// ///

///private

static

async task countcharactersasync(string address,int

id) 已經呼叫完成");

return

result.length;

}//獲取乙個隨機數

private

static

async task getrandomasyn(int

id) );

console.writeline($

" 已經呼叫完成");

return

num;}}

在非同步方法中非同步等待任務繼續我們的非同步程式設計之路........

class

program

"); //

但是這裡會堵塞id呀;

console.writeline("

mian line 2");

console.read();

}private

static

async taskgetrandomasync()

);time++;

var t2 = task.run(() =>);

//這裡開啟了兩個非同步的任務;

await task.whenall(new listint>>() ); //

【注意】whenall() 非同步等待集合內的 task 都完成,不會占用主線程的時間。

//await task.whenany(new list>() );

console.writeline($

"t1.: ");

console.writeline($

"t2.: ");

return t1.result + t2.result; //

這個就返回了 我們想要的基本值滴呀;

} }

結果:如果該成whenany的結果:

ps:以上結果是有不確定性呀,你懂滴哦;

task.delay() 暫停執行

這個其實是thread.sleep的一種取代方法地呀;

private

static

void main(string

args)

- start.");

doasync();

console.writeline($

" - end.");

console.read();

}private

static

async

void

doasync()

- start.");

await task.delay(500

); console.writeline($

" - end.");

}

結果哦:

async和await的講解

普通的函式宣告 async function a 複製 宣告乙個函式表示式 let a async function 複製 async形式的箭頭函式 let a async 複製 async與await例項應用,基礎 控制器呼叫與server中查詢資料 exports.getbloglist asy...

async和await的使用

async其實是es7的才有的,是非同步操作的進化,其實就是封裝乙個promise的物件返回 async function test console.log test promiseasync方法在普通的函式前加上 async 關鍵字即可。執行這個函式,發現並沒有返回1111,而是通過promise...

async和await的講解

async和await的講解 宣告async函式的幾個方法 普通的函式宣告 async function a 宣告乙個函式表示式 let a async function async形式的箭頭函式 let a async 初識async和await async與await例項應用,基礎 控制器呼叫與...