c# - 如何使无窗口/命令行应用程序返回但继续在后台执行?

标签 c# .net vb.net

我正在 .Net 中编写命令行应用程序。该应用程序本身相当简单,但它必须同步连接到 Web 服务,而 Web 服务又必须连接到 Oracle 数据库,那些部分喜欢从容不迫。

是否有一种直接的方法(无需将我的应用程序 exe 一分为二)继续执行但仍将执行让给命令提示符?

它是 Windows,所以没有“&”。此外,我无法使用 cmd.exe 的“启动”cmdlet。

最佳答案

我认为如果不从您的应用程序运行后台进程是不可能的。但是,一种相当简洁的方法可能是像这样修改您的 Main 方法:

static void Main(string[] args)
{
    if (args.Length > 0 && args[0] == "run")
    {
        //actually run your application here
    }
    else
    {
        //create another instance of this process
        ProcessStartInfo info = new ProcessStartInfo();
        info.FileName = Assembly.GetExecutingAssembly().Location;
        info.Arguments = "run";
        info.UseShellExecute = false;
        info.CreateNoWindow = true;

        Process.Start(info);
    }
}

无论如何,只是把它从我的头顶上写下来。基本上,它会创建同一可执行文件的新实例,但新进程会看到“运行”命令行参数并完成工作,而不是生成新实例。设置我“应该”的选项允许生成的进程也打印到现有的控制台。

关于c# - 如何使无窗口/命令行应用程序返回但继续在后台执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5003482/

相关文章:

c# - 如何在不按 Tab 的情况下强制 DataGridView 当前单元格轮廓

C#抽象类静态字段继承

c# - 使基于 C# 的 Excel 加载项以最小的痛苦在进程外运行

.net - .net:线程调试

c# - 我需要帮助将 VB.Net Linq 转换为 C# Linq

c# - 使用 C# 控制台应用程序创建 HTTP 发布请求并接收响应

.net - 如何使用 .Net 创建 Outlook PST 文件?

c# - Elmah:如何从错误报告中获取 JSON HTTP 请求正文

c# - 将委托(delegate)从 C# 转换为 VB.NET

vb.net - 在 Visual Basic 中如何创建 block 注释