C# 调度计时器不工作

C# 调度计时器不工作,c#,uwp,dispatchertimer,C#,Uwp,Dispatchertimer,我试图弄清楚分派计时器是如何工作的,这样我就可以在我的程序中实现它。我按照网站上的确切说明,寻找有关堆栈溢出的答案。人们说他们的问题已经解决,但我有非常相似的代码,它不会工作 错误是: timer_Tick与委托事件处理程序匹配时没有重载 我能做什么 public MainPage() { this.InitializeComponent(); DispatcherTimer timer = new DispatcherTimer(); timer.Interval =

我试图弄清楚分派计时器是如何工作的,这样我就可以在我的程序中实现它。我按照网站上的确切说明,寻找有关堆栈溢出的答案。人们说他们的问题已经解决,但我有非常相似的代码,它不会工作

错误是:

timer_Tick与委托事件处理程序匹配时没有重载

我能做什么

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();
}

您需要修复事件处理程序签名。它缺少发送方,第二个参数的类型只是object。看

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

Windows.UI.Xaml.DispatcherTimer timer = new Windows.UI.Xaml.DispatcherTimer();
System.Windows.Threading.DispatcherTimer timer
    = new System.Windows.Threading.DispatcherTimer();
如果有人无意中发现了这一点,并且正在使用WPF,那么它就有自己的WPF。确保您引用的是默认情况下应该存在的WindowsBase。签名略有不同

void timer_Tick(object sender, EventArgs e)
{
    TimeRefresh();
}
它所在的名称空间也不同。使用System.Windows.Threading添加;到顶部,或使用完整命名空间进行限定:

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

如果您使用的是WinForms,则需要使用不同的计时器。查看WinForms计时器和WPF DispatchTimer之间的差异。

您必须指定事件源

void timer_Tick(object sender,EventArgs e)
{
    TimeRefresh();
}
活动注册应如下所示:

timer.Tick += new EventHandler(timer_Tick);

您可以阅读有关事件和事件处理程序的更多信息

我使用DispatchTimer,但当我使用System.Windows.Threading.DispatchTimer时,会显示名称空间“System.Windows”中不存在类型或名称空间名称“Threading”。是否缺少程序集引用?必须缺少System.Windows.Threading程序集reference@Victor ,如何添加它?可能我缺少WindowsBase.dll我以前没有添加引用,如何尝试查看它是否缺少,如果缺少,如何添加它?不,我只看到system.windows