1

我用单声道为 linux 编写了一个控制台应用程序。

我必须开始

“须藤单声道应用程序.exe”

发生某些事情时是否可以重新启动应用程序。

例如,我在树莓派上运行这个应用程序,当应用程序检测到特殊 IO 引脚上的电压时,应用程序应该会自动重启。

请帮我。

4

2 回答 2

0

您可以使用 Process 类中的方法启动一个新的应用程序实例,然后再退出。

http://www.dotnetperls.com/process-start

于 2013-04-26T10:24:24.197 回答
0

在 Windows 上,您可以使用 cmd.exe 来执行脚本。在这篇博文中作者要求 cmd 等待一段时间,然后删除可执行文件,

http://blog.pedroliska.com/2010/05/20/c-self-destruct-windows-app/

如果在 Windows 上,您可以使用相同的技巧重新启动可执行文件。

var startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd.exe";
startInfo.RedirectStandardInput = true;
startInfo.UseShellExecute = false;
startInfo.CreateNoWindow = true;

var process = new Process();
process.StartInfo = startInfo;
process.Start();

// The delay is just making sure the exe to delete is done
// running.
var delayPings = 2;
var exeName = AppDomain.CurrentDomain.FriendlyName;
process.StandardInput.WriteLine("(ping -n " + delayPings + " 127.0.0.1) && (CALL " + exeName + ")");

现在对于 Linux,您只需要使用bash(或另一个 Shell)来替换cmd并修改传递给它的命令。

于 2013-05-03T07:01:05.517 回答