C# 隐藏程序定时器
C# Hidden Program Timer
我创建了一个 C# 控制台应用程序并将输出类型更改为 Project > Project Properties
中的 Windows 应用程序以创建一个隐藏程序。
我的主要方法如下所示:
static void Main(string[] args)
{
System.Timers.Timer timer = new System.Timers.Timer(); // Initialize a timer
timer.Elapsed += new System.Timers.ElapsedEventHandler(runProgram); // to call method runProgram
timer.Interval = 10000; // every 10 seconds
timer.AutoReset = true; // which auto-resets
timer.Enabled = true; // Enable timer
timer.Start(); // Start timer
Console.ReadLine(); // Prevent program from terminating
}
程序应该被隐藏并且每 10 秒调用一次方法runProgram
。
当我将其编译为控制台应用程序时,它工作正常。但是当我尝试编译为 Windows 应用程序时,它不起作用。我的猜测是计时器在编译为 Windows 应用程序时不起作用。
如何实现?
没有控制台就无法调用 Console.ReadLine();
。
相反,您应该调用 Application.Run()
(运行 消息循环)或 Thread.Sleep(Timeout.Infinite)
(永远挂起)。
我创建了一个 C# 控制台应用程序并将输出类型更改为 Project > Project Properties
中的 Windows 应用程序以创建一个隐藏程序。
我的主要方法如下所示:
static void Main(string[] args)
{
System.Timers.Timer timer = new System.Timers.Timer(); // Initialize a timer
timer.Elapsed += new System.Timers.ElapsedEventHandler(runProgram); // to call method runProgram
timer.Interval = 10000; // every 10 seconds
timer.AutoReset = true; // which auto-resets
timer.Enabled = true; // Enable timer
timer.Start(); // Start timer
Console.ReadLine(); // Prevent program from terminating
}
程序应该被隐藏并且每 10 秒调用一次方法runProgram
。
当我将其编译为控制台应用程序时,它工作正常。但是当我尝试编译为 Windows 应用程序时,它不起作用。我的猜测是计时器在编译为 Windows 应用程序时不起作用。
如何实现?
没有控制台就无法调用 Console.ReadLine();
。
相反,您应该调用 Application.Run()
(运行 消息循环)或 Thread.Sleep(Timeout.Infinite)
(永远挂起)。