提问人:DharuvVerma21 提问时间:6/9/2023 更新时间:6/9/2023 访问量:119
在 C# 中每 100 毫秒自动触发一次的事件处理程序
Event Handler that can be triggered every 100ms in C# automatically
问:
有没有办法在 C# 中每 100 毫秒自动触发一次事件处理程序,而无需任何调用?
我需要该事件处理程序每 100 毫秒或在任何固定时间间隔后触发一个函数,以便处理某些内容。我无法找到一种方法来做到这一点。你能帮我解决这个问题吗?
答:
1赞
DonMiguelSanchez
6/9/2023
#1
你可以使用DispatcherTimer
DispatcherTimer updateTimer = new DispatcherTimer { Interval = new TimeSpan(0, 0, 0, 0, 100) };
updateTimer.Tick += new EventHandler(UpdateHandler);
updateTimer.Start();
事件处理程序应如下所示
private void UpdateHandler(object sender, EventArgs e)
{
// Your Logic
}
之后,您的事件将每 100 毫秒触发一次。
查看 Windows https://learn.microsoft.com/en-us/dotnet/api/system.windows.threading.dispatchertimer?view=windowsdesktop-7.0 中的文档
评论
1赞
Enigmativity
6/12/2023
“you[r] 事件将每 100 毫秒触发一次”——严格来说并非如此。Windows 内部计时器每秒执行 64 个事件,因此,充其量可以将计时器降低到每 15.625 毫秒一次。因此,一个 100 毫秒的计时器将在 93.75 到 109.375 毫秒之间触发,或者每 109.375 毫秒触发一次,具体取决于它的实现方式。
评论