Beispiel #1
0
        private void btnDisconnect_Click(object sender, EventArgs e)
        {
            bool bClosed = false;

            if (m_taskCmd != null || m_taskCreate != null)
            {
                m_evtCancel.Set();

                if (m_taskCmd != null)
                {
                    m_taskCmd.Wait();
                    m_taskCmd.Dispose();
                    m_taskCmd = null;
                }

                if (m_taskCreate != null)
                {
                    m_taskCreate.Wait();
                    m_taskCreate.Dispose();
                    m_taskCreate = null;
                    bClosed      = true;
                }
            }

            if (!bClosed)
            {
                m_webCam.Close();
            }
        }
Beispiel #2
0
        private void createThread(object obj)
        {
            Tuple <Filter, string> args = obj as Tuple <Filter, string>;

            m_webCam             = new WebCam.WebCam();
            m_webCam.OnSnapshot += m_webCam_OnSnapshot;
            m_webCam.Open(args.Item1, null, args.Item2);
            m_evtCreateDone.Set();

            m_evtCancel.WaitOne();
            m_webCam.Close();
        }
        /** @copydoc Layer::dispose */
        protected override void dispose()
        {
            base.dispose();

            lock (m_objSync)
            {
                if (m_webcam != null)
                {
                    m_webcam.Close();
                    m_webcam.Dispose();
                    m_webcam = null;
                    m_filter = null;
                }
            }
        }