异步编程:提升并发效率
让Web服务器处理更多请求,同时处理请求的数量
多线程不等于异步编程 异步编程简化了多线程程序开发
async、await
“异步方法”:用async关键字修饰的方法
1.异步方法的返回值一般是Task,T是真正的返回值类型,例:Task
2.异步方法名字以Async结尾
3.即使方法没有返回值,也最好把返回值声明为非泛型的Task
4.调用泛型方法时,一般在方法前加上await关。这样拿到的返回值就是泛型指定的T类型
5.异步方法的传染性:一个方法中如果有await调用,则这个方法也必须修饰为async
*如果在不能使用异步方法的情况下,可以使用 Result(),Wait(),如果有返回值就使用Result(),如果没有返回值就使用Wait(); 容易导致死锁;
异步委托
C#
static void Main(string[] args)
{
ThreadPool.QueueUserWorkItem(async (obj) =>
{
while (true)
{
await File.WriteAllTextAsync("C:\\Users\\Dell\\Desktop\\1.txt", "fxxkyou man");
Console.WriteLine("fdg");
}
});
Console.Read();
}