C#——await与async实现多线程异步编程

曾经,我们也许用过Thread。在主线程运行的时候。新开还有一个新线程,来运行新方法。

今天看别人发给我的一段代码的时候发现了一个不认识的await,可是又感觉非常熟悉的样子,感觉是线程那块儿的东西,查了下,发现一个简单的方法实现多线程异步编程。

(PS:framework 在4.5以上才干够哦~)

 /// <summary>
/// 測试方法
/// </summary>
/// <remarks>创建者:刘慧超; 创建时间:2015-08-24 20:22:14</remarks>
public async static void AsyncPrintHelloWorld()
{
Console.WriteLine("异步方法调用開始");
Console.WriteLine("异步方法:hello world"); //.net framework 4.5及其以上版本号
await Task.Delay(1000); //此处开启新线程来处理,做个測试。。 。
Console.WriteLine("退出异步方法");
}

main调用:

            Console.WriteLine("===============异步方法调用===========");
AsyncPrintHelloWorld();
Console.WriteLine("*************如今运行的是主线程的方法**************");
Console.ReadKey();

方法结果:

aaarticlea/png;base64,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" alt="" />

在方法上面加上keywordasync,同一时候,对于方法中要开启新线程的地方。增加awaitkeyword,则此处会另开一个线程去处理,主线程继续,这里的方法运行完给个结果。

挺好玩儿的,不知道哪天就用到了。。

。。。

上一篇:多线程异步编程示例和实践-Task


下一篇:.NET异步编程初识async与await