gpt4 book ai didi

c# - C# Windows 窗体中是否有 QTimer::singleShot 等效项?

转载 作者:行者123 更新时间:2023-11-30 14:38:34 30 4
gpt4 key购买 nike

Windows 窗体中的 Qt 库是否有类似于以下静态函数的类比?

http://doc.qt.io/qt-5/qtimer.html#singleShot

我能想到的最好的是:

ThreadPool.QueueUserWorkItem((o) =>
{
Thread.Sleep(someNumberOfMilliseconds);
DoDelayedWorkHere();
});

更新

这就是使用 System.Windows.Forms.Timer 的技巧。

var timer = new System.Windows.Forms.Timer();
timer.Interval = someNumberOfMilliseconds;
timer.Tick += (o, args) =>
{
timer.Stop();
DoDelayedWorkHere();
};
timer.Start();

最佳答案

QTimer 是一个同步计时器,就像 Winforms 计时器一样。线程或其他 Timer 类之一不是替代品。单次触发很容易实现,只需在Tick事件处理程序中将定时器的Enabled属性设置为false即可。没有比赛的危险:

    private void timer1_Tick(object sender, EventArgs e) {
((Timer)sender).Enabled = false;
// etc..
}

关于c# - C# Windows 窗体中是否有 QTimer::singleShot 等效项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7812756/

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