读书人

做这个循环加上一个thread.sleep方法

发布时间: 2012-06-01 16:46:36 作者: rapoo

做这个循环,加上一个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刷新时间

读书人网 >C#

热点推荐