【问题标题】:Is it possible to make a .net console application return control while a thread is still executing?是否可以在线程仍在执行时使 .net 控制台应用程序返回控制?
【发布时间】:2013-09-09 18:17:04
【问题描述】:

假设我有一个在线程上执行一些长时间运行的代码的 .net 控制台应用程序。

我想让控制台应用程序在线程仍在运行时终止。具体来说,我想从批处理文件或其他进程启动控制台应用程序,这将启动长时间运行的进程,然后在长时间运行的线程执行时继续执行其他操作。

如果不可能,我知道的唯一解决方法是让服务程序托管长时间运行的线程。

是否可以像我描述的那样让控制台应用程序返回控件?

【问题讨论】:

标签: .net multithreading console-application long-running-processes


【解决方案1】:

线程在托管它们的进程的上下文中运行。因此,如果您终止控制台或“返回控制”,您可以这样做,您的线程将无法完成(您的线程更有可能阻止您的应用程序退出,这也是您不想要的)。

您可以模拟使用启动命令将控制权返回给批处理文件/shell:

c:\>start myconsole

这将创建一个新的命令窗口,您的进程在其中同步运行,但您启动它的批处理文件不必等待。

您还可以通过生成子进程来“模拟”它。见Process.Start() 的想法。

【讨论】:

    猜你喜欢
    • 2011-01-23
    • 2018-11-02
    • 2023-03-22
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    相关资源
    最近更新 更多