当前位置:  开发笔记 > 编程语言 > 正文

调度计时器不起作用

如何解决《调度计时器不起作用》经验,为你挑选了1个好方法。

我正在试图弄清楚调度计时器是如何工作的,所以我可以将它实现到我的程序中,我按照网站上的确切说明查找堆栈溢出的答案.人们说他们的问题是固定的,但我的代码非常相似,它不会工作......

错误是:

"timer_Tick"没有重载与委托"EventHandler "相匹配

我能做什么?

public MainPage()
{
    this.InitializeComponent();

    DispatcherTimer timer = new DispatcherTimer();
    timer.Interval = TimeSpan.FromSeconds(1);
    timer.Tick += timer_Tick;
    timer.Start();
}

void timer_Tick(EventArgs e)
{
    TimeRefresh();
}

Grant - REIN.. 5

您需要修复事件处理程序签名.它缺少发件人,第二个参数的类型就是object.(参见文档.)

void timer_Tick(object sender, object e)
{
    TimeRefresh();
}

您还需要using Windows.UI.Xaml;在类的顶部添加a ,或使用完整命名空间实例化计时器:

Windows.UI.Xaml.DispatcherTimer timer = new Windows.UI.Xaml.DispatcherTimer();

如果有人偶然发现并使用WPF,它就拥有自己的DispatchTimer.确保您引用"WindowsBase" (默认情况下应该在那里).签名略有不同.

void timer_Tick(object sender, EventArgs e)
{
    TimeRefresh();
}

它所居住的命名空间也不同.要么添加using System.Windows.Threading;到顶部,要么使用完整命名空间限定:

System.Windows.Threading.DispatcherTimer timer
    = new System.Windows.Threading.DispatcherTimer();

如果您使用的是WinForms,则需要使用其他计时器.阅读本文,了解 WinForms Timer和WPF DispatchTimer之间的区别.



1> Grant - REIN..:

您需要修复事件处理程序签名.它缺少发件人,第二个参数的类型就是object.(参见文档.)

void timer_Tick(object sender, object e)
{
    TimeRefresh();
}

您还需要using Windows.UI.Xaml;在类的顶部添加a ,或使用完整命名空间实例化计时器:

Windows.UI.Xaml.DispatcherTimer timer = new Windows.UI.Xaml.DispatcherTimer();

如果有人偶然发现并使用WPF,它就拥有自己的DispatchTimer.确保您引用"WindowsBase" (默认情况下应该在那里).签名略有不同.

void timer_Tick(object sender, EventArgs e)
{
    TimeRefresh();
}

它所居住的命名空间也不同.要么添加using System.Windows.Threading;到顶部,要么使用完整命名空间限定:

System.Windows.Threading.DispatcherTimer timer
    = new System.Windows.Threading.DispatcherTimer();

如果您使用的是WinForms,则需要使用其他计时器.阅读本文,了解 WinForms Timer和WPF DispatchTimer之间的区别.

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有