C# 开发摄像头应用程序,录像时出现鼠标是忙碌状态问题如何解决
能拍照,也能录像,就是录像时鼠标是忙碌状态,不能做其它事,一点击鼠标就会停止录像,请各位大神指点一下。
              
              
------解决方案--------------------录像语句后面跟上这句试试
Application.DoEvents();
或者
如果录像没有主界面UI操作和交互的话。直接新开个线程,别让它阻塞UI。
Thread processorThread = new Thread(new ThreadStart(录像函数));
processorThread.IsBackground = true;
processorThread.SetApartmentState(ApartmentState.STA);
processorThread.Start();
------解决方案--------------------MSDN:http://msdn.microsoft.com/zh-cn/library/system.windows.forms.application.doevents(v=vs.90).aspx
我以前在程序里加载网页过程中,鼠标操作经常出现程序无响应,加上DoEvents就好一些。
如果video不是窗体控件的话,还是新开一个线程进行录制吧。
------解决方案--------------------多线程.............
------解决方案--------------------
应该不会..你是否在线程中访问UI线程了?
------解决方案--------------------/// <summary>
///录像按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
        private void recordC_Click(object sender, EventArgs e)
        {
            
video.path=@"d:\1.avi";
            delegateKinescope myK = new delegateKinescope(video.StartKinescope);
          Thread threadKinescope = new Thread(new ThreadStart(myK));
          threadKinescope.Start();
        }
///<summary>
        ///开始录像
        ///</summary>
        ///<param name="path">要保存的录像路径</param>
        
public string path;
        public void StartKinescope()
        {
           // byte[] lpszName = new byte[100];
           // byte[] lpszVer = new byte[100];
          //  VideoAPI.capGetDriverDescriptionA(0, lpszName, 100, lpszVer, 100); 
            //string path;
            //path = "D:\\lx.avi";
            IntPtr hBmp = Marshal.StringToHGlobalAnsi(path);
            VideoAPI.SendMessage(lwndC, VideoAPI.WM_CAP_FILE_SET_CAPTURE_FILEA, 0, hBmp.ToInt32());
            Video