我是线程新手,不了解它应该如何使用。我的时钟有问题。我的时钟没有给我正确的当地时间,而是给了我大约10-15分钟的延迟时间。
我认为我的代码存在错误或遗漏:
private void MainWindow_Load(object sender, EventArgs e)
{
new System.Threading.Timer((state) =>
{
if (!label2.IsHandleCreated)
return;
BeginInvoke((Action)delegate()
{ label2.Text = " " + DateTime.Now.ToString("hh:MM:ss") + " " +
DateTime.Now.ToShortDateString(); });
}, null, 1000, 1000);
}
我已经读过,begininvoke应该始终与endinvoke配对。但是我该怎么做呢?
编辑:我需要知道为什么这段代码给我延迟时间,就像现在它的12:23,但程序显示12:03,它总是从12:03开始,当我重新运行它。有时候时钟停止。为什么呢?
答案 0 :(得分:1)
您的格式字符串hh:MM:ss
显示小时(12小时制):月:秒。您可能打算hh:mm:ss
有关详细说明,请参阅MSDN上的Custom Date and Time Format Strings。