日期:2014-05-18  浏览次数:20870 次

做这个循环,加上一个thread.sleep方法,怎么不延时啊?
我是做一个往窗体上面载入照片的循环程序。按理说,应该是一个照片贴上去,停30毫秒,再贴上去另外一张。结果现在是程序先歇一会儿,然后所有的照片同时出来!怎么回事?我需要的是每个循环之间歇一会儿。
C# code

for (int i = 0; i < 8; i++)
            {
                X = SX;
                
                for (int j = 0; j < 6; j++)
                {
                    System.Threading.Thread.Sleep(30);
                    if (((i == 2) && (j == 2 || j == 3 || j == 4 || j == 5))||((i==5)&&(j==0||j==1||j==2||j==3)))
                    {
                    }
                    else
                    {
                        PictureBox pb = new PictureBox();
                        pb.Size = new System.Drawing.Size(25, 33);
                        pb.Image = Image.FromFile(@"e:\staff\" + countFlag.ToString() + ".jpg");
                        pb.Location = new Point(X, Y);
                        pb.BringToFront();
                        this.Controls.Add(pb);
                        countFlag += 1;
                        //
                        
                    }
                    X += horizontalCrossing + hSep;
                }
                Y += verticalCrossing + ySep;
            }



------解决方案--------------------
countFlag += 1;
这行上面加
Application.DoEvents();
------解决方案--------------------
for循环中加一句Application.DoEvents();给cpu刷新时间