下面是一个代码实例
运行结束
转载请保留原创地址 http://www.luofenming.com/show.aspx?id=ART2019092900001
static void Main() { Console.WriteLine("-------主线程启动-------"); GetStrLengthAsync(); Console.WriteLine("主线程继续执行"); Console.WriteLine("-------主线程结束-------"); Console.Read(); } static async void GetStrLengthAsync() {//跟主线程是同一个线程 Console.WriteLine("GetStrLengthAsync方法开始执行"); //此处返回的<string> 中的字符串类型,而不是Task<string> string str = await GetString();//等待GetString执行完成 Console.WriteLine("GetStrLengthAsync方法执行结束"); } static Task<string> GetString() {//跟主线程是同一个线程 Console.WriteLine("GetString方法开始执行"); return Task<string>.Run(() => {//导步线程 处理耗时任务 如果是Winform不卡界面 Thread.Sleep(4000); Console.WriteLine("GetString方法结束执行"); return "GetString的返回值"; }); }
运行结束
转载请保留原创地址 http://www.luofenming.com/show.aspx?id=ART2019092900001