下面是一个代码实例
运行结束
转载请保留原创地址 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