C#控制台应用程序是否会等待所有task.runs完成?

C#控制台应用程序是否会等待所有task.runs完成?,c#,asynchronous,C#,Asynchronous,我有一个控制台应用程序,通过task.run运行一大堆东西。我需要在应用程序终止之前完成所有这些事情。主线代码只是在主线的末尾运行。进程是否会关闭,等待我所有的任务运行完成,还是我必须自己连接。如果有,是否有人有任何建议。如果您有一系列任务,您可以使用 Task.WaitAll(tasks_array); 在控制台应用程序上,进程关闭不会等待任务完成。它调用ExitProcess,它有效地终止所有线程,包括为任务提供服务的线程池 正如@Ryan Pierce Willems所写,您需要调用Ta

我有一个控制台应用程序,通过
task.run
运行一大堆东西。我需要在应用程序终止之前完成所有这些事情。主线代码只是在主线的末尾运行。进程是否会关闭,等待我所有的
任务运行完成,还是我必须自己连接。如果有,是否有人有任何建议。

如果您有一系列任务,您可以使用

Task.WaitAll(tasks_array);

在控制台应用程序上,进程关闭不会等待任务完成。它调用ExitProcess,它有效地终止所有线程,包括为任务提供服务的线程池


正如@Ryan Pierce Willems所写,您需要调用Task.WaitAll以确保等待所有任务完成

由于任务将在后台线程上运行(我在这里忽略实现并发/异步行为的其他机制),因此您的程序/进程不会在终止之前等待它们完成。相反,当主线程终止时(更准确地说,当最后一个前台线程终止时),所有仍在运行的后台线程(您的任务)都将被随意删除。。。