我正在.Net 中编写一个命令行应用程序。该应用程序本身相当简单,但它必须同步连接到 Web 服务,而 Web 服务又必须连接到 Oracle 数据库,并且those作品喜欢慢慢来。
是否有一种简单的方法(无需将我的应用程序 exe 一分为二)继续执行,但仍然在命令提示符下执行?
这是Windows,所以没有“和”。另外,我无法使用 cmd.exe“start”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);
}
}
无论如何,就像这样,只是把这个写在我的脑海里。基本上,它创建同一可执行文件的新实例,但新进程看到“运行”命令行参数并执行工作,而不是生成新实例。设置我“应该”允许生成的进程也打印到现有控制台。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)