C#浠诲姟寤舵椂涓庤秴鏃剁殑澶勭悊鏂规硶
鍦–#涓紝鍙互浣跨敤Task.Delay鏂规硶鏉ュ疄鐜颁换鍔″欢鏃剁殑鍔熻兘锛屽彲浠ユ寚瀹氬欢鏃舵椂闂村悗鎵ц鐩稿簲鐨勬搷浣溿€傚彟澶栵紝涔熷彲浠ヤ娇鐢–ancellationToken鏉ュ彇娑堝欢鏃朵换鍔★紝浠ラ伩鍏嶈秴鏃舵儏鍐点€?/p>
涓嬮潰鏄竴涓畝鍗曠殑绀轰緥浠g爜锛屾紨绀轰簡濡備綍鍦–#涓疄鐜颁换鍔$殑寤舵椂鍜岃秴鏃跺鐞嗭細
using System;
using System.Threading;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
// 寤舵椂浠诲姟
await Task.Delay(2000); // 2绉掑欢鏃?/span>
Console.WriteLine("寤舵椂浠诲姟瀹屾垚锛?quot;);
// 瓒呮椂浠诲姟
var cts = new CancellationTokenSource();
var token = cts.Token;
var timeoutTask = Task.Delay(3000, token);
// 妯℃嫙浠诲姟瓒呮椂
if (await Task.WhenAny(timeoutTask) == timeoutTask)
{
Console.WriteLine("浠诲姟瓒呮椂锛?quot;);
}
else
{
// 鎵ц姝e父鎿嶄綔
Console.WriteLine("浠诲姟瀹屾垚锛?quot;);
}
}
}
鍦ㄤ笂闈㈢殑绀轰緥涓紝鎴戜滑棣栧厛浣跨敤Task.Delay
鏂规硶瀹炵幇浜嗕竴涓?绉掔殑寤舵椂浠诲姟銆傜劧鍚庝娇鐢?code>CancellationToken鍜?code>Task.Delay鏂规硶鏉ュ疄鐜颁簡涓€涓?绉掔殑瓒呮椂浠诲姟銆傚綋浠诲姟瓒呮椂鏃讹紝浼氳緭鍑?quot;浠诲姟瓒呮椂锛佲€滐紱褰撲换鍔″湪瑙勫畾鏃堕棿鍐呭畬鎴愭椂锛屼細杈撳嚭"浠诲姟瀹屾垚锛佲€濄€?/p>
相关问答