gpt4 book ai didi

c# - UWP 相当于 Timer.Elapsed 事件

转载 作者:太空狗 更新时间:2023-10-29 20:04:14 24 4
gpt4 key购买 nike

我需要每隔几分钟自动触发一个事件。我知道我可以使用 Windows 窗体应用程序中的 Timers.Elapsed 事件来执行此操作,如下所示。

using System.Timers;

namespace TimersDemo
{
public class Foo
{
System.Timers.Timer myTimer = new System.Timers.Timer();

public void StartTimers()
{
myTimer.Interval = 1;
myTimer.Elapsed += new System.Timers.ElapsedEventHandler(myTimer_Elapsed);
myTimer.Start();
}

void myTimer_Elapsed(object sender, EventArgs e)
{
myTimer.Stop();
//Execute your repeating task here
myTimer.Start();
}
}
}

我在 google 上搜索了很多,并努力寻找 UWP 中与此等效的东西。

最佳答案

以下代码片段使用 DispatcherTimer应提供等效功能,在 UI 线程上运行回调。

using Windows.UI.Xaml;
public class Foo
{
DispatcherTimer dispatcherTimer;
public void StartTimers()
{
dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += dispatcherTimer_Tick;
dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
}

// callback runs on UI thread
void dispatcherTimer_Tick(object sender, object e)
{
// execute repeating task here
}
}

当不需要在 UI 线程上更新而您只需要一个计时器时,您可以使用 ThreadPoolTimer , 像这样

using Windows.System.Threading;
public class Foo
{
ThreadPoolTimer timer;

public void StartTimers()
{
timer = ThreadPoolTimer.CreatePeriodicTimer(TimerElapsedHandler, new TimeSpan(0, 0, 1));
}

private void TimerElapsedHandler(ThreadPoolTimer timer)
{
// execute repeating task here
}
}

关于c# - UWP 相当于 Timer.Elapsed 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41033783/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com