WPF开启Thread线程仿真,点击暂停后仿真速度变快
//仿真开始
private void btnSimuStart_Click(object sender, RoutedEventArgs e)
{
bIsStartDiagramSimu = true;
bIsPuaseDiagramSimu = false;
TraDiaPasSimuThread = new Thread(new ThreadStart(DiagramPassengerSimulate));
TraDiaPasSimuThread.IsBackground = true;
TraDiaPasSimuThread.Start();
}
//仿真暂停
private void btnSimuPause_Click(object sender, RoutedEventArgs e)
{
bIsPuaseDiagramSimu = true;
}
//仿真函数
private void DiagramPassengerSimulate()
{
while (bIsStartDiagramSimu)
{
if(!bIsPuaseDiagramSimu)
{
if (iSimuStartSecondTime <= iSimuEndTime)
{
iSimuStartSecondTime += iSimuSecondTimeStep;
this.Dispatcher.BeginInvoke((Action)delegate ()
{
tbkTest.Text = iSimuStartSecondTime.ToString();
try
{
DrawSimuTimeLine(cvDiagramTrainRunLine);
DrawSimuDiagramTrainLine(cvDiagramTrainRunLine);
}
catch
{
//MessageBox.Show("里面出错");
}
});
Thread.Sleep(50);
}
else
bIsStartDiagramSimu = false;
}
}
}
点击开始后开始仿真,但是当我暂停后再次开始时,仿真速度确变快了,步长变量 iSimuSecondTimeStep没有变化,Thread.Sleep(50)写死了。就是说 iSimuStartSecondTime增加的速度变快,导致前台画面效果再暂停后再次开始刷新频率明显变快。
求问什么原因,变快对项目没有影响,但是算是个使用体验的问题,因为之后想设置改变速度的功能,与这里的现象发生了冲突。