У меня возникли проблемы с синхронизацией следующего кода. По сути, у меня есть «recordingOn», когда «Истина», предполагается начать запись кадров в файл. В приведенной ниже программе, когда я иногда делаю Stop_Button_Click, я получаю исключение для «writer1.Write (frame1);» Это скорее всего потому, что это происходит после того, как я уже сделал dispose (). Как мне это синхронизировать? спасибо!
private bool recordingOn = false;
private void ConnectCameras_Button_Click(object sender, EventArgs e)
{
if (!captureInProgress) //Start cameras streaming
{
camera1Capture.ImageGrabbed += ProcessFrame;
camera1Capture.Start();
}
else //Stop cameras streaming
{
camera1Capture.Stop();
imageBox1.Image = null;
camera1Capture.ImageGrabbed -= ProcessFrame;
}
captureInProgress = !captureInProgress;
}
private void ProcessFrame(object sender, EventArgs arg)
{
camera1Capture.Retrieve(frame1);
imageBox1.Image = frame1;
if (recordingOn)
{
try
{
writer1.Write(frame1);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
private void Stop_Button_Click(object sender, EventArgs e)
{
// Doing other stuff...
recordingOn = false;
writer1.Dispose();
}