Объект используется в настоящее время в другом месте, когда используется только веб-камера C # - PullRequest
0 голосов
/ 07 июня 2018

ОБНОВЛЕНИЕ: Я изменил код и удалил все, что могло быть записано одновременно с pictureBox1, и я все еще получаю ту же ошибку, но в другом месте.Я приложу картинку с ошибкой.Я обновил код.

Хорошо, поэтому я пытался везде искать ответы на эту ошибку, но нигде не получил.Я нашел ответы, такие как g.Dispose(); и «получение блокировки изображения».Тем не менее, мой проект немного отличается, потому что это не неподвижное изображение.Вылетает примерно через 504 кадра.Я приложу изображение, где я получаю сообщение об ошибке, и я также свяжу код для отображения веб-камеры.Я понятия не имею, как pictureBox1 используется где-то еще, когда все, что я делаю в кнопке «Пуск» - это просто запускаю веб-камеру и сохраняю кадры в папке.Я использую библиотеку AForge для доступа к веб-камере.И когда я просто нажимаю кнопку «Запустить веб-камеру» и подожду пару минут, я получаю эту ошибку:

System.InvalidOperationException не обработан HResult = -2146233079
Сообщение = Объект в настоящее время используется в другом месте.Source = System.Drawing StackTrace: в System.Drawing.Graphics.CheckErrorStatus (статус Int32) в System.Drawing.Graphics.DrawImage (изображение изображения, Int32 x, Int32 y, ширина Int32, высота Int32) в System.Drawing.Graphics.DrawImage (изображение, прямоугольник) в System.Windows.Forms.PictureBox.OnPaint (PaintEventArgs pe) в System.Windows.Forms.Control.PaintWithErrorHandling (PaintEventArgs e, слой Int16) в System.Windows.Forms.Control.WmPaint (Сообщение & m) в System.Windows.Forms.Control.WndProc (Сообщение & m) в System.Windows.Forms.Control.ControlNativeWindow.OnMessage (Сообщение & m) в System.Windows.Forms.Control.ControlNativeWindow.WndProc (Сообщение & m) вSystem.Windows.Forms.NativeWindow.DebuggableCallback (IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) InnerException:

Изображение сообщения об ошибке: https://imgur.com/a/bBFARy8

Код:

//Initializing Webcam
private FilterInfoCollection webcam;
private VideoCaptureDevice cam;


 //Start Webcam 
    private void button1_Click(object sender, EventArgs e)
    {
        cam = new VideoCaptureDevice(webcam[comboBox1.SelectedIndex].MonikerString);
        cam.NewFrame += new NewFrameEventHandler(Cam_NewFrame);
        cam.Start();
    }

    //Displaying Video from webcam in Picture box
    void Cam_NewFrame(object sender, NewFrameEventArgs eventArgs)
    {
        Bitmap image = (Bitmap)eventArgs.Frame.Clone();
        Bitmap image1 = (Bitmap)eventArgs.Frame.Clone();
        pictureBox1.Image = image;

        //Drawing lines across the pictureBox
        g1 = Graphics.FromImage(image);

        Pen gridPen = new Pen(Color.Black, 5);
        g1.DrawLine(gridPen, 0, 5, 805, 5);
        g1.DrawLine(gridPen, 0, 100, 805, 100);
        g1.DrawLine(gridPen, 0, 195, 805, 195);
        g1.DrawLine(gridPen, 0, 290, 805, 290);
        g1.DrawLine(gridPen, 0, 385, 805, 385);
        g1.DrawLine(gridPen, 0, 480, 805, 480);
    }
...