方法自身实现异部调用和WinForm上图片切换效果

以下的代码图片的切换效果已经出来了,但是奇慢无比,本来打算在循环内部加入"Thread.Sleep(n);",但是不用加也很慢。看来C#实现漂亮的图片切换效果我是不行了,希望那位前辈给帮一下忙。
 private void SwitchImage(PictureBox pb,Image img,bool isAsync) {
            
//异步调用
            if (isAsync) {
                Thread t 
= new Thread(delegate(object o) {
                                        SwitchImage((PictureBox)(((System.Collections.Stack)o).Pop()),
                                                    (Image)(((System.Collections.Stack)o).Pop()),
                                                    (
bool)(((System.Collections.Stack)o).Pop())
                                                    );
                                      });
                System.Collections.Stack st 
= new System.Collections.Stack(3);
                st.Push(
false);
                st.Push(img);
                st.Push(pb);
                t.Start(st);
                
return;
            }

            
float opacity = 0;
            
float[][] nArray =new float[] {10000}, 
                                
new float[] {01000}, 
                                
new float[] {00100}, 
                                
new float[] {000, opacity, 0}, 
                                
new float[] {00001}
                               };

            
            
while (opacity < 1){
                opacity 
+= 0.1F;
                nArray[
3][3= opacity;
                ColorMatrix matrix 
= new ColorMatrix(nArray);
                ImageAttributes attributes 
= new ImageAttributes();
                attributes.SetColorMatrix(matrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
                Bitmap resultImage 
= new Bitmap(img.Width, img.Height);
                Graphics g 
= Graphics.FromImage(resultImage);
                g.DrawImage(img, 
new Rectangle(00, img.Width, img.Height), 00, img.Width, img.Height, GraphicsUnit.Pixel, attributes);
                pb.Image 
= resultImage;
                
//Thread.Sleep(100);
            }
        }
posted @ 2009-03-16 16:28  文明的天空  阅读(1353)  评论(0编辑  收藏  举报