【发布时间】:2017-07-09 01:42:14
【问题描述】:
对于使用计时器的典型控制台应用程序,我们可以使用“Console.ReadLine()”来防止应用程序关闭。当控制台应用程序的输出类型为“Windows 应用程序”时,是否有等效的解决方案?
旁注:在这种情况下,Windows 服务不是解决方案,因为我正在启动进程。
class Program
{
private static Timer _Timer;
static void Main(string[] args)
{
SetupTimer();
}
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
Process.Start(@"C:\WINDOWS\system32\notepad.exe");
}
private static void SetupTimer()
{
_Timer = new Timer();
_Timer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
_Timer.Interval = 3000;
_Timer.Enabled = true;
}
}
【问题讨论】:
-
一个windows应用程序有一个窗口,只要窗口没有关闭,定时器就会运行。关闭窗口是关闭窗口的用户命令,就像在控制台中输入键是关闭控制台的命令一样。不知道你在这里问什么。
-
@CodingYoshi 见这里。我的应用程序没有要关闭的窗口。 stackoverflow.com/questions/2686289/…
-
目前还不是很清楚为什么要使用定时器。你没有 UI 来保持快乐,所以 Thread.Sleep() 也可以做到。
-
@HansPassant 为什么我要使用计时器与我的问题无关,但这是因为我想监视另一个进程,一旦它终止,启动另一个应用程序。 Thread.Sleep() 将完成这项工作。谢谢
-
存储
Process.Start()返回的Process实例,然后使用它的WaitForExit()方法?....
标签: c# console-application windows-applications