请教用emgu CV怎么播放本地的视频文件并提取帧呢,用Capture类实现

请问用emgu CV如何播放本地的视频文件并提取帧呢,用Capture类实现
我在网上参考人家的写法:
private void button1_Click(object sender, EventArgs e)
        {



            Capture capture = new Capture("d:\\1.mp4");

            while (true)
            {
                Image<Bgr, Byte> frame = capture.QueryFrame();

                if (frame != null)
                {
                    Image<Gray,byte> grayFrame = frame.Convert<Gray,byte>();

                    grayFrame.Resize(this.Width,this.Height,INTER.CV_INTER_CUBIC);

                    this.imageBox1.Image = grayFrame;
                   // RefreshPictureBoxDelegate fresh = this.RefreshPictureBox;

                    //this.BeginInvoke(fresh,grayFrame.ToBitmap());


                    //imageBox1.Image = frame;
                }

                //Thread.Sleep(500);
            }

        }
        public delegate void RefreshPictureBoxDelegate(Bitmap frame);

        private void RefreshPictureBox(Bitmap frame)  
        {  
           this.pictureBox1.Image = frame;
           //this.imageBox1.Image = frame;
        } 

这样界面会卡死,请问怎么解决去播放视频,或者有个emgu CV播放视频文件的例子呢
------解决思路----------------------
public partial class Form1 : Form
{
    Capture _capture;
    public Form1()
    {
        InitializeComponent();
        _capture = new Capture();
        _capture.ImageGrabbed += _capture_ImageGrabbed;
        _capture.Start();
    }

    void _capture_ImageGrabbed(object sender, EventArgs e)
    {
        var frame = _capture.RetrieveBgrFrame();
        pic.Image = frame.Bitmap;
    }
}