什么是C#异步方法,它是否返回到父方法? 您所在的位置:网站首页 异步方法返回值 什么是C#异步方法,它是否返回到父方法?

什么是C#异步方法,它是否返回到父方法?

#什么是C#异步方法,它是否返回到父方法?| 来源: 网络整理| 查看: 265

问题描述

你好,

在异步编程中,如果方法(子方法)在方法(父方法)内部以"异步"形式调用,然后它并行运行.我无法理解一件事-

1.Parent方法是否有child方法的踪迹,以便Parent方法可以知道child方法执行已经完成.

2.如果父方法执行在子方法执行之前完成,子方法会发生什么.子方法是否会显示输出.

我尝试过的:

引用:使用系统;使用 System.Threading;命名空间线程{公共静态类程序{//父方法作为Main()公共静态无效 Main(){ThreadPool.QueueUserWorkItem(ChildMethod, 5);Console.WriteLine("嗨,我在父方法中.");//Console.ReadLine();}

//这个方法的 ChildMethodprivate static void ChildMethod(对象状态){//等待因为父方法必须在子方法之前完成.线程.睡眠(1000);Console.WriteLine("嗨,我在子方法中.");Console.ReadLine();}}}

推荐答案Quote:Parent 方法是否有任何踪迹的子方法,这样Parent方法就可以知道子方法执行已经完成了.如果用第二个参数传递的状态对象不包含一些告诉正在发生的事情的方法,那么除非你注册一个等待处理"调用任务"无法告诉"子任务"发生了什么.线程池类(System.Threading)[^] - 见"备注"部分.引用:如果父方法执行在子方法执行之前完成,子方法会发生什么.子方法是否会显示输出.这是一个困难的问题:它取决于哪个线程启动子进程.如果它是主线程 - 如您的示例中那样从 main 方法执行的线程 - 那么当该线程结束时,所有子任务也将如此,无论它们的状态如何,所有内存和其他资源都将被回收到操作系统.如果不是,则子线程将继续.

本文地址:https://www.itbaoku.cn/post/1095937.html



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有