您的位置:首页 > 新闻 > 会展 > 石家庄网站制作长沙_我的常德_搜狗网站排名软件_百度搜索推广操作简要流程

石家庄网站制作长沙_我的常德_搜狗网站排名软件_百度搜索推广操作简要流程

2025/7/2 6:40:49 来源:https://blog.csdn.net/qq_40418109/article/details/146984014  浏览:    关键词:石家庄网站制作长沙_我的常德_搜狗网站排名软件_百度搜索推广操作简要流程
石家庄网站制作长沙_我的常德_搜狗网站排名软件_百度搜索推广操作简要流程

异步编程

  • 异步编程是一种编程技术,它允许并发执行代码而不会阻止调用线程的执行。异步代码可以在执行其他代码时后台运行,在同步编程中,每一行代码都是按顺序执行的,程序会等待每个动作完成,然后再进行下一个动作,这可能会导致性能问题,尤其是在需要长时间执行动作处理的程序中。

async

  • async关键字将方法标记为异步,这意味着它可以在后台运行。

await

  • 当方法被标记为异步时,可以使用await关键字来指示该方法应等待异步动作的结果,然后再继续。

测试1

#region [测试1]class Program
{static void Main(string[] args){Test1();Test2();Console.ReadKey();}public static async Task Test1(){await Task.Run(() =>{for (int i = 0; i < 100; i++){Console.WriteLine(" Test 1");Task.Delay(100).Wait();}});}public static void Test2(){for (int i = 0; i < 30; i++){Console.WriteLine(" Test 2");Task.Delay(100).Wait();}}
}#endregion
  • 执行结果

    从执行结果可以看到test1与test2互不依赖,没有相互等待。

测试2

    #region[测试2]class Program{static void Main(string[] args){callTest();Console.ReadKey();}public static async void callTest(){Task<int> task = Test1();Test2();int count = await task;Test3(count);}public static async Task<int> Test1(){int count = 0;await Task.Run(() =>{for (int i = 0; i < 50; i++){Console.WriteLine(" Test 1");count += 1;}});return count;}public static void Test2(){for (int i = 0; i < 10; i++){Console.WriteLine(" Test 2");}}public static void Test3(int count){Console.WriteLine("Total: " + count);}}#endregion
  • 执行结果
    在这里插入图片描述
    假设test3依赖于test1.test1以整数值的形式返回总长度,在test3中将参数作为长度传递,该参数来自于test1,我们必须在test3传递参数之前使用await关键字,因此,我们调用的方法必须使用async关键字标记。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com