C# stopwatch的有关问题
C# stopwatch的问题
但是现在的问题注释掉MessageBox.Show(“test”); 则不会自动执行,
只有当MessageBox.Show(“test”);在的时候 才会点击一下弹出的messagebox然后继续执行,请问这样的话现在如何解决。
stopwatch是否用错了。
------解决思路----------------------
改成这样试试
stopwatch.Reset();
stopwatch.Start();
------解决思路----------------------
stopwatch是用来实现高精度计时的
lz这么用是想实现什么功能?
如果只是实现个循环功能,放到timer中不是更方便
------解决思路----------------------
应该给个 休眠时间吧? Thread.Sleep(5000); 否则不是不执行而是执行得的太快,
------解决思路----------------------
把你的代码改成如下所示,图片就能交叉替换显示了。
------解决思路----------------------
要加Thread.Sleep(5000);,不然太快,没有效果
------解决思路----------------------
说白了,你需要的是一个闹钟,而不是一个秒表
------解决思路----------------------
两个图片替换关stopwatch什么事,这个是计时器,你应该用的是定时器Timer
------解决思路----------------------
执行循环和替换图片都是同一个线程干的活, 如果在循环里转不出去, 图片切换是没人去干的.
当 MessageBox 显示的时候, 这个线程才可以抽空显示图片.
最好的办法就是用 Timer , 可以设一个比较小的间隔(最好是Time Interval的最大公约数),
每次执行的时候计算当前应该显示哪幅图, 如果需要切换了就切换.
private void button3_Click(object sender, EventArgs e)
{
var stopwatch = Stopwatch.StartNew();
for (int index = 1; index < timeNum; index++)
{
stopwatch.Restart();
//MessageBox.Show(“test”);
Thread.Sleep(5000);
pictureBox1.Image = list1[index * 2];
pictureBox2.Image = list1[index * 2 + 1];
stopwatch.Stop();
}
}
// list[n]是一个image的array
// 点击button3之后 隔一段时间循环改变picturebox1,2的图片从list中
但是现在的问题注释掉MessageBox.Show(“test”); 则不会自动执行,
只有当MessageBox.Show(“test”);在的时候 才会点击一下弹出的messagebox然后继续执行,请问这样的话现在如何解决。
stopwatch是否用错了。
------解决思路----------------------
改成这样试试
stopwatch.Reset();
stopwatch.Start();
------解决思路----------------------
stopwatch是用来实现高精度计时的
lz这么用是想实现什么功能?
如果只是实现个循环功能,放到timer中不是更方便
------解决思路----------------------
应该给个 休眠时间吧? Thread.Sleep(5000); 否则不是不执行而是执行得的太快,
------解决思路----------------------
把你的代码改成如下所示,图片就能交叉替换显示了。
private void button3_Click(object sender, EventArgs e)
{
var stopwatch = Stopwatch.StartNew();
for (int index = 1; index < timeNum; index++)
{
stopwatch.Restart();
Thread.Sleep(5000);
pictureBox1.Image = list1[index * 2];
Thread.Sleep(5000);
pictureBox2.Image = list1[index * 2 + 1];
stopwatch.Stop();
}
}
------解决思路----------------------
要加Thread.Sleep(5000);,不然太快,没有效果
------解决思路----------------------
说白了,你需要的是一个闹钟,而不是一个秒表
------解决思路----------------------
两个图片替换关stopwatch什么事,这个是计时器,你应该用的是定时器Timer
------解决思路----------------------
执行循环和替换图片都是同一个线程干的活, 如果在循环里转不出去, 图片切换是没人去干的.
当 MessageBox 显示的时候, 这个线程才可以抽空显示图片.
最好的办法就是用 Timer , 可以设一个比较小的间隔(最好是Time Interval的最大公约数),
每次执行的时候计算当前应该显示哪幅图, 如果需要切换了就切换.