Jud*_*den 3 c# qt timer winforms threadpool
Windows窗体中的Qt库是否存在以下静态函数的模拟?
http://doc.qt.io/qt-5/qtimer.html#singleShot
我能想到的最好的是以下内容:
ThreadPool.QueueUserWorkItem((o) =>
{
Thread.Sleep(someNumberOfMilliseconds);
DoDelayedWorkHere();
});
Run Code Online (Sandbox Code Playgroud)
UPDATE
这样做可以使用System.Windows.Forms.Timer.
var timer = new System.Windows.Forms.Timer();
timer.Interval = someNumberOfMilliseconds;
timer.Tick += (o, args) =>
{
timer.Stop();
DoDelayedWorkHere();
};
timer.Start();
Run Code Online (Sandbox Code Playgroud)
QTimer是一个同步计时器,就像Winforms计时器一样.线程或其他计时器类之一是没有替代品.单击很容易实现,只需在Tick事件处理程序中将计时器的Enabled属性设置为false.没有比赛的危险:
private void timer1_Tick(object sender, EventArgs e) {
((Timer)sender).Enabled = false;
// etc..
}
Run Code Online (Sandbox Code Playgroud)