newb here。
我试图了解如何编写一个计时器来关闭我的c#控制台应用程序,以便我不必再次点击'return'来关闭窗口(我一直在使用Console.Read();保持它打开所以我可以看到应用程序按目的运行到目前为止)所以我正在尝试制作一个小计时器方法,下面是我发现的远,但它不运行,因为我不明白什么/我认为如何处理它。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Lec044b_ForLoop_Sum
{
class Program
{
public void Play()
{
Console.WriteLine("Announce Program");
Console.WriteLine("Close Program Announcement");
timer1_Tick(3000);
}
private void timer1_Tick(object sender, EventArgs e)
{
this.Close();
}
static void Main(string[] args)
{
Program myProgram = new Program();
myProgram.Play();
}
}
}
我已经研究了一些,我已经去了微软资源,这些资源是为那些了解这些东西和新手的人写的,并且看了几个博客并且变得越来越困惑。希望得到一些帮助,这是值得赞赏的。
总结一下 - 我只希望我的控制台窗口在5秒后自动关闭。这就是我想用一个简单的方法做的事情。最终我会尝试将其作为一个类或类似的东西,但我需要小步骤,所以我理解。
干杯
答案 0 :(得分:6)
Thread.Sleep会做你想做的事:
static void Main(string[] args)
{
Play();
}
static void Play()
{
Console.WriteLine("Announce Program");
Console.WriteLine("Close Program Announcement");
Thread.Sleep(5000);
}
答案 1 :(得分:1)
我相信这应该做到:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace Lec044b_ForLoop_Sum
{
class Program
{
public void Play()
{
Console.WriteLine("Announce Program");
Console.WriteLine("Close Program Announcement");
Timer t = new Timer(timerC, null, 5000, 5000);
}
private void timerC(object state)
{
Environment.Exit(0);
}
static void Main(string[] args)
{
Program myProgram = new Program();
myProgram.Play();
Console.ReadLine();
}
}
}
(注意它不是来自命名空间Timer
的{{1}}类,而是来自命名空间System.Timers
)
答案 2 :(得分:0)
Timer t = new Timer() ;
t.Interval = 120000;
t.Tick += (s, e) =>
{
Application.Exit();
};
t.Start();
答案 3 :(得分:0)
带有支票的帖子是正确的答案。但是,我只是想明确使用System.Threading.Timer! 我有一个类似的问题,一个System.Timers.Timer和一个System.Windows.Forms.Timer,而没有锁定UI的唯一对我来说完美的问题是System.Threading.Timer。 我的实现如下。
using System.Threading;
System.Threading.Timer timer = new System.Threading.Timer(timerC, null, 5000, 5000);
private void timerC(object state)
{
Environment.Exit(0);
}