Accord.Video.AsyncVideoSource.Free C# (CSharp) Method

Free() private method

private Free ( ) : void
return void
        private void Free()
        {
            if (imageProcessingThread != null)
            {
                nestedVideoSource.NewFrame -= new NewFrameEventHandler(nestedVideoSource_NewFrame);

                // make sure processing thread does nothing
                isProcessingThreadAvailable.WaitOne();
                // signal worker thread to stop and wait for it
                lastVideoFrame = null;
                isNewFrameAvailable.Set();
                imageProcessingThread.Join();
                imageProcessingThread = null;

                // release events
                isNewFrameAvailable.Close();
                isNewFrameAvailable = null;

                isProcessingThreadAvailable.Close();
                isProcessingThreadAvailable = null;
            }
        }