我在C#中做了一个图片显示集,有和多pictureBox,从后台数据库读图片并显示在PICTUREBOX中,我读图片和显示图片是分两个循环做的,先读,再显示。现在的显示是多副图片一起显示,这样显示速度就很慢,我点显示按钮后要停滞一会才显示,有什么办法提高显示速度,或者说,可以让他一副一副逐个显示出来?这样看起来就没有停滞现象了,都是活动的

解决方案 »

  1.   

    在循环的时候加上  Application.DoEvents() 就可以了
    比如
    for()
    {
     Application.DoEvents()
    }
      

  2.   

    用backgroundWorker1。从后台读取图片。
           //记录当前读取 的图片的索引号。
        int imageIndex = 0;
        backgroundWorker1.WorkerReportsProgress = true;
            private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
            {
                int imageCount = 0;
                if (imageIndex = 0)
                {
                    imageCount = //从数据库里读出图片的数量。
                }
                do
                {
                    imageIndex++;
                    Bitmap bmp =  //从数据库里读出Image (where ImageId=i)
                    backgroundWorker1.ReportProgress(0, bmp);
                } while (imageIndex < imageCount);
            }        private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
            {
                pictureBox1.Image = e.UserState;
                //让图片显示2秒后再开始读取下一张图片。
                System.Threading.Thread.Sleep(2000);
            }