千家信息网

.NET怎么实现异步编程async和await

发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,本篇内容介绍了".NET怎么实现异步编程async和await"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学
千家信息网最后更新 2025年01月16日.NET怎么实现异步编程async和await

本篇内容介绍了".NET怎么实现异步编程async和await"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

await和async是.NET Framework4.5框架、C#5.0语法里面出现的,await和async是语法糖。

注意:

1、async出现在方法的声明里面,任何一个方法都可以增加async。

2、await放在Task前面,async和await是成对出现的,只有async是没有意义的,只有await是报错的。

只有async是没有意义的。

只有await是报错的。

3、await 只能放在task前面,不推荐void返回值,使用Task来代替。Task和Task能够使用await, Task.WhenAny, Task.WhenAll等方式组合使用。Async Void 不行

private static async Task Return(){            //主线程执行            Console.WriteLine($"NoReturn Sleep before await,ThreadId={Thread.CurrentThread.ManagedThreadId}");            TaskFactory taskFactory = new TaskFactory();            Task task = taskFactory.StartNew(() =>            {                Console.WriteLine($"NoReturn Sleep before,ThreadId={Thread.CurrentThread.ManagedThreadId}");                Thread.Sleep(3000);                Console.WriteLine($"NoReturn Sleep after,ThreadId={Thread.CurrentThread.ManagedThreadId}");            });            //主线程到这里就返回了,执行主线程任务            await task;            //这个回调的线程是不确定的:可能是主线程  可能是子线程  也可能是其他线程            Console.WriteLine($"NoReturn Sleep after await,ThreadId={Thread.CurrentThread.ManagedThreadId}");}

".NET怎么实现异步编程async和await"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0