解决方案 »

  1.   

    改成这样试试
                    stopwatch.Reset();
                    stopwatch.Start();
      

  2.   

    stopwatch是用来实现高精度计时的
    lz这么用是想实现什么功能?
    如果只是实现个循环功能,放到timer中不是更方便
      

  3.   


    到底是代码跳出了for循环,不继续执行
    还是
    stopwatch无法实现计时?
      

  4.   

    @xian_wwq 
    用Timer实在是不会..我还在试@Z65443344
    其实想实现的就是每隔一段时间两个picturebox的图片替换,类似相册的功能。
    然后这个间隔的时间 Time Interval其实是不相同的,我上面用的循环就是我已经把间隔的时间也在一个数组里面了,可以直接在循环中调用。
    现在的话这样循环,picturebox不会一个一个替换显示。
      

  5.   

    其实想实现的就是每隔一段时间两个picturebox的图片替换,类似相册的功能。
    然后这个间隔的时间 Time Interval其实是不相同的,我上面用的循环就是我已经把间隔的时间也在一个数组里面了,可以直接在循环中调用。
    现在的话这样循环,picturebox不会一个一个替换显示。
      

  6.   

    用Timer实在是不会..我还在试
    你可以看下这个,哈哈: http://bbs.csdn.net/topics/390967304
      

  7.   


                for (int index = 1; index < timeNum; index++)
                {
                   var stopwatch = Stopwatch.StartNew();
                    stopwatch.Restart(); 
                    //MessageBox.Show(“test”);
                    Thread.Sleep(5000);  
                    pictureBox1.Image = list1[index * 2];
                    pictureBox2.Image = list1[index * 2 + 1];
                    stopwatch.Stop();
                }我认为你的申明要放在循环里面。
      

  8.   

    应该给个 休眠时间吧?  Thread.Sleep(5000);  否则不是不执行而是执行得的太快,
      

  9.   

    把你的代码改成如下所示,图片就能交叉替换显示了。
     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();
                }
    }
      

  10.   

    要加Thread.Sleep(5000);,不然太快,没有效果
      

  11.   

    仅仅是实现定时替换,跟stopwatch有一毛钱关系??
    stopwatch是用来检测代码执行时间的
    不是定时器啊
      

  12.   

    用Timer实在是不会..我还在试
    你可以看下这个,哈哈: http://bbs.csdn.net/topics/390967304
    不会用,就去学,而不是因为不会用,所以就不用
    好比你想给花翻翻土,浇浇水,你需要铲子和水壶.没有的话用叉子和饭碗也行,还没有用筷子和瓶子也行
    如果你非要用鼠标翻土,用键盘浇水,那是自己找不自在
      

  13.   

    用Timer实在是不会..我还在试
    你可以看下这个,哈哈: http://bbs.csdn.net/topics/390967304
    不会用,就去学,而不是因为不会用,所以就不用
    好比你想给花翻翻土,浇浇水,你需要铲子和水壶.没有的话用叉子和饭碗也行,还没有用筷子和瓶子也行
    如果你非要用鼠标翻土,用键盘浇水,那是自己找不自在顶
      

  14.   

    两个图片替换关stopwatch什么事,这个是计时器,你应该用的是定时器Timer
      

  15.   

    执行循环和替换图片都是同一个线程干的活, 如果在循环里转不出去, 图片切换是没人去干的.
    当 MessageBox 显示的时候, 这个线程才可以抽空显示图片.
    最好的办法就是用 Timer , 可以设一个比较小的间隔(最好是Time Interval的最大公约数),
    每次执行的时候计算当前应该显示哪幅图, 如果需要切换了就切换.
      

  16.   

    public int sec = 0;
    private void button3_Click(object sender, EventArgs e)
            { for (int i = 0; i < 4; i++)
                {
                   MessageBox.Show("test");
                    sec = 0;
                    timer1.Enabled = true;
                    timer1.Start();
                }
           }
    private void timer1_Tick(object sender, EventArgs e)
            {
                sec++;
                if(sec==5000)
                {
                    pictureBox1.Image = list[3];
                    pictureBox2.Image = list[4];
                    timer1.Enabled = false;
                    timer1.Stop();
                }
            } 问题是: MessageBox.Show("test");这个连续弹出来,for循环,timer1_Tick貌似不起作用只执行了一次,用的是system.window.forms下面的timer,是不是要在Tick事件中做什么判断再跳转出来?谢谢大家如上回复
      

  17.   

    有看到说,“使用timer.Enabled属性用于设置是否启用定时器。timer1.Stop();方法是用于停止计时。” 
    那就是要把判断的逻辑放到Tick事件中感觉,我再试试看~
      

  18.   


     for (int i = 1; i <= timeNum; i++)
                {
                    //MessageBox.Show("test");
                    Thread.Sleep(Convert.ToInt32(arrTime[i-1]));
                    pictureBox1.Image = list1[i*2];
                    pictureBox2.Image = list1[i*2+1];
                    pictureBox1.Refresh();
                    pictureBox2.Refresh();
                }