none
Por favor Ayúdenme con este error en mi aplicación Vb 2015

    Pregunta

  • Esta es una aplicación que descodifica código QR de la identificación de los empleados para marcar asistencia.

    Pero al pasar varias horas encendida la cámara me sale excepción el objeto ya está siendo usado.

    _____________________________________________________________________________

    CODIGO FUENTE

    Imports AForge.Video

    Imports AForge.Video.DirectShow

    Imports ZXing

    Imports System.Diagnostics

    Imports System.Speech

    Public Class Form1

        Dim FUENTES As FilterInfoCollection 'CAMARAS DISPONIBLES

        Dim WithEvents FUENTE As VideoCaptureDevice 'CAMARA

        Dim WithEvents FUENTE2 As VideoCaptureDevice 'CAMARA

        Dim IMAGEN As Bitmap 'IMAGENES CAMARA

        Dim IMAGEN2 As Bitmap 'IMAGENES CAMARA

     

     

        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

            Me.TRABAJADORESTableAdapter.Fill(Me.BdasistenciaDataSet.TRABAJADORES)

            'TODO: esta línea de código carga datos en la tabla 'BdasistenciaDataSet.ASISTENCIA' Puede moverla o quitarla según sea necesario.

            Me.ASISTENCIATableAdapter.Fill(Me.BdasistenciaDataSet.ASISTENCIA)

     

            FUENTES = New FilterInfoCollection(FilterCategory.VideoInputDevice)

            If FUENTES.Count > 0 Then

                Label1.Text = Nothing

                For i As Integer = 0 To FUENTES.Count - 1

                    ComboBox1.Items.Add(FUENTES(i).Name.ToString())

                Next

                ComboBox1.Visible = True

            Else

                MsgBox("NO HAY CAMARAS DISPONIBLES")

            End If

        End Sub

        Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

            'INICIA LA CAMARA

            Try

                FUENTE = New VideoCaptureDevice(FUENTES(ComboBox1.SelectedIndex).MonikerString)

                AddHandler FUENTE.NewFrame, New NewFrameEventHandler(AddressOf video_NuevoFrame1)

                FUENTE.Start()

                FUENTE2 = New VideoCaptureDevice(FUENTES(ComboBox1.SelectedIndex).MonikerString)

                AddHandler FUENTE.NewFrame, New NewFrameEventHandler(AddressOf video_NuevoFrame2)

                FUENTE.Start()

            Catch

            End Try

            Timer1.Interval = 500

            Timer1.Start()

        End Sub

        Private Sub video_NuevoFrame1(sender As Object, eventArgs As NewFrameEventArgs)

            'PRESENTA LAS IMAGENES EN EL PICTUREBOX1

            Try

                IMAGEN = TryCast(eventArgs.Frame.Clone(), Bitmap)

                PictureBox1.Image = IMAGEN

            Catch ex As Exception

            End Try

        End Sub

        Private Sub video_NuevoFrame2(sender As Object, eventArgs As NewFrameEventArgs)

            'PRESENTA LAS IMAGENES EN EL PICTUREBOX1

            Try

                IMAGEN2 = TryCast(eventArgs.Frame.Clone(), Bitmap)

                PictureBox4.Image = IMAGEN2

            Catch ex As Exception

            End Try

        End Sub

        Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick

            'DECODIFICA SI PUEDE Y PONE EL RESULTADO EN LA ETIQUETA

     

            Dim ingreso, salida, nombre, DECO As String

            Dim fecha As Date

            Dim dia, mes, año, fecham As String

            Dim control1, control2 As String

            Dim audio = CreateObject("SAPI.spvoice")

            dia = Val(Date.Now.Day)

            mes = Val(Date.Now.Month)

            año = Val(Date.Now.Year)

            fecham = Str(dia) + Str(mes) + Str(año)

            ingreso = IngresoTextBox.Text

            salida = SalidaTextBox.Text

     

            fecha = Date.Now.ToShortDateString

            txtfecha.Text = fecha

            Try

                Dim DECODER As BarcodeReader = New BarcodeReader

                DECO = DECODER.Decode(PictureBox1.Image).ToString

                TRABAJADORESTableAdapter.FillBycodigo(Me.BdasistenciaDataSet.TRABAJADORES, DECO)

                ASISTENCIATableAdapter.FillByfecha(Me.BdasistenciaDataSet.ASISTENCIA, txtfecha.Text, DECO)

     

            Catch

     

            End Try

            Try

                control1 = TRABAJADORESTableAdapter.FillBycodigo(Me.BdasistenciaDataSet.TRABAJADORES, DECO)

                control2 = ASISTENCIATableAdapter.FillByfecha(Me.BdasistenciaDataSet.ASISTENCIA, txtfecha.Text, DECO)

            Catch

            End Try

            If control1 > 0 And IngresoTextBox.Text = "" Then

                ''agregado try

                Try

                    Label1.Text = DECO

                Catch

                End Try

                DNITextBox.Text = DNITextBox1.Text

                    DatosTextBox.Text = DATOSTextBox1.Text

                    IngresoTextBox.Text = Date.Now.ToShortTimeString

                    FechaTextBox.Text = Date.Now.ToShortDateString

                ''agregado try

                Try

                    nombre = DECO

                Catch

                End Try

                NombrecompletoTextBox.Text = NOMBRECOMPLETOTextBox1.Text

                    CondicionTextBox.Text = CONDICIONTextBox1.Text

                    AñoTextBox.Text = Date.Now.Year

                    MesTextBox.Text = MonthName(Date.Now.Month)

                ASISTENCIATableAdapter.Insertar(DNITextBox.Text, DatosTextBox.Text, NombrecompletoTextBox.Text, IngresoTextBox.Text, SalidaTextBox.Text, CondicionTextBox.Text, FechaTextBox.Text, MesTextBox.Text, AñoTextBox.Text)

                Try

                    PictureBox4.Image.Clone.Save("C:\Win7\System\dll\BASE\ingreso" + nombre + fecham + ".jpg", Drawing.Imaging.ImageFormat.Jpeg)

                Catch

                End Try

                Try

                    audio.volume = 100

                    audio.rate = 0

                    audio.speak("Bienvenido " + SALUDOTextBox.Text)

                    txttiempo.Text = Date.Now.ToLongTimeString

                Catch

                End Try

            End If

                If control2 > 0 And control1 > 0 Then

                ''agregado try

                Try

                    Label1.Text = DECO

                Catch

                End Try

                DatosTextBox.Text = DATOSTextBox1.Text

                    SalidaTextBox.Text = Date.Now.ToShortTimeString

                    FechaTextBox.Text = Date.Now.ToShortDateString

                    Me.Validate()

                    Me.ASISTENCIABindingSource.EndEdit()

                    Me.TableAdapterManager.UpdateAll(Me.BdasistenciaDataSet)

                nombre = Label1.Text

                Try

                    PictureBox4.Image.Clone.Save("C:\Win7\System\dll\BASE\salida" + nombre + fecham + ".jpg", Drawing.Imaging.ImageFormat.Jpeg)

                Catch

                End Try

                Try

                    audio.volume = 100

                    audio.rate = 0

                    audio.speak("Hasta mañana " + SALUDOTextBox.Text)

                    txttiempo.Text = Date.Now.ToLongTimeString

                Catch

                End Try

            End If

        End Sub

        Private Sub Form1_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing

            'DESCONECTA LAS CAMARA

            Try

                FUENTE.SignalToStop()

                FUENTE2.SignalToStop()

            Catch ex As Exception

            End Try

        End Sub

     

     

        Private Sub Button2_Click(sender As Object, e As EventArgs)

            FUENTE.SignalToStop()

     

            FUENTE = New VideoCaptureDevice(FUENTES(ComboBox1.SelectedIndex).MonikerString)

            AddHandler FUENTE.NewFrame, New NewFrameEventHandler(AddressOf video_NuevoFrame1)

            FUENTE.Start()

            Timer1.Interval = 500

            Timer1.Start()

     

        End Sub

    _____________________________________________________________________________

    TEXTO DE LA EXCEPCION

    Consulte el final de este mensaje para obtener más detalles sobre cómo invocar a la depuración

    Just-In-Time (JIT) en lugar de a este cuadro de diálogo.

     

    ************** Texto de la excepción **************

    System.InvalidOperationException: El objeto ya está en uso.

       en System.Drawing.Graphics.CheckErrorStatus(Int32 status)

       en System.Drawing.Graphics.DrawImage(Image image, Int32 x, Int32 y, Int32 width, Int32 height)

       en System.Drawing.Graphics.DrawImage(Image image, Rectangle rect)

       en System.Windows.Forms.PictureBox.OnPaint(PaintEventArgs pe)

       en System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer)

       en System.Windows.Forms.Control.WmPaint(Message& m)

       en System.Windows.Forms.Control.WndProc(Message& m)

       en System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

       en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

       en System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    ************** Ensamblados cargados **************

    mscorlib

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll

    ----------------------------------------

    Control de asistencia JFSC

        Versión del ensamblado: 1.0.0.0

        Versión Win32: 1.0.0.0

        Código base: file:///C:/Users/CONTROL/AppData/Local/Apps/2.0/GHQ9PEYT.AB0/P5P6N8TG.5GL/cont..tion_45adbe6bc77b0959_0001.0000_887dcb18ee116dfe/Control%20de%20asistencia%20JFSC.exe

    ----------------------------------------

    Microsoft.VisualBasic

        Versión del ensamblado: 10.0.0.0

        Versión Win32: 14.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll

    ----------------------------------------

    System

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll

    ----------------------------------------

    System.Core

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll

    ----------------------------------------

    System.Windows.Forms

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

    ----------------------------------------

    System.Drawing

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

    ----------------------------------------

    System.Configuration

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll

    ----------------------------------------

    System.Xml

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll

    ----------------------------------------

    System.Runtime.Remoting

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll

    ----------------------------------------

    System.Data

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll

    ----------------------------------------

    System.Windows.Forms.resources

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_es_b77a5c561934e089/System.Windows.Forms.resources.dll

    ----------------------------------------

    System.Data.DataSetExtensions

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Data.DataSetExtensions/v4.0_4.0.0.0__b77a5c561934e089/System.Data.DataSetExtensions.dll

    ----------------------------------------

    System.Numerics

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll

    ----------------------------------------

    Accessibility

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll

    ----------------------------------------

    AForge.Video.DirectShow

        Versión del ensamblado: 2.2.0.0

        Versión Win32: 2.2.0.0

        Código base: file:///C:/Users/CONTROL/AppData/Local/Apps/2.0/GHQ9PEYT.AB0/P5P6N8TG.5GL/cont..tion_45adbe6bc77b0959_0001.0000_887dcb18ee116dfe/AForge.Video.DirectShow.DLL

    ----------------------------------------

    System.Data.resources

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Data.resources/v4.0_4.0.0.0_es_b77a5c561934e089/System.Data.resources.dll

    ----------------------------------------

    System.Transactions

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Transactions/v4.0_4.0.0.0__b77a5c561934e089/System.Transactions.dll

    ----------------------------------------

    System.EnterpriseServices

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.EnterpriseServices/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll

    ----------------------------------------

    AForge.Video

        Versión del ensamblado: 2.2.0.0

        Versión Win32: 2.2.0.0

        Código base: file:///C:/Users/CONTROL/AppData/Local/Apps/2.0/GHQ9PEYT.AB0/P5P6N8TG.5GL/cont..tion_45adbe6bc77b0959_0001.0000_887dcb18ee116dfe/AForge.Video.DLL

    ----------------------------------------

    zxing

        Versión del ensamblado: 0.14.0.0

        Versión Win32: 0.14.0.0

        Código base: file:///C:/Users/CONTROL/AppData/Local/Apps/2.0/GHQ9PEYT.AB0/P5P6N8TG.5GL/cont..tion_45adbe6bc77b0959_0001.0000_887dcb18ee116dfe/zxing.DLL

    ----------------------------------------

    mscorlib.resources

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_es_b77a5c561934e089/mscorlib.resources.dll

    ----------------------------------------

    System.Drawing.resources

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing.resources/v4.0_4.0.0.0_es_b03f5f7f11d50a3a/System.Drawing.resources.dll

    --------------------------------------

    ************** Depuración JIT **************

    Para habilitar la depuración Just In Time (JIT), el archivo de configuración de esta

    aplicación o equipo (machine.config) debe tener el

    valor jitDebugging establecido en la sección system.windows.forms.

    La aplicación también se debe compilar con la depuración

    habilitada

    Por ejemplo:

    <configuration>

        <system.windows.forms jitDebugging="true" />

    </configuration>

    Cuando esté habilitada la depuración JIT, cualquier excepción no controlada

    se enviará al depurador JIT registrado en el equipo

    en lugar de controlarlo mediante el cuadro de diálogo.

     

     

     

     

     

     


     

     

     

     


    miércoles, 13 de diciembre de 2017 23:27

Respuestas

  • Mi sospecha es que el evento NewFrame del VideoCaptureDevice puede estarse disparando en otro hilo. La documentación no es clara en ese sentido, pero investigando por la red he encontrado algún mensaje en otros foros en el que les ocurrían errores intermitentes como a ti y lo solucionaron transportando la ejecución al hilo principal (por ejemplo, usando Me.Invoke) dentro del evento NewFrame.
    martes, 19 de diciembre de 2017 7:46
  • Más o menos así:

    Private Sub video_NuevoFrame1(sender As Object, eventArgs As NewFrameEventArgs)
        Me.Invoke(Sub() 
             'PRESENTA LAS IMAGENES EN EL PICTUREBOX1
             Try
                 IMAGEN = TryCast(eventArgs.Frame.Clone(), Bitmap)
                 PictureBox1.Image = IMAGEN
             Catch ex As Exception
                 PictureBox1.Refresh()
             End Try
         End Sub)
    End Sub
    

    miércoles, 20 de diciembre de 2017 7:57

Todas las respuestas

  • Indícanos en qué linea te da el error.

    Saludos, Javier J

    jueves, 14 de diciembre de 2017 16:49
  • Exactamente no se la linea pero al parecer el Picturebox genera un errorimage y se crashea mi aplicacion, la pregunta es como evitar que mi Picture box se sature con la webcam. 

    TEXTO DE LA EXCEPCION

    Consulte el final de este mensaje para obtener más detalles sobre cómo invocar a la depuración

    Just-In-Time (JIT) en lugar de a este cuadro de diálogo.

     

    ************** Texto de la excepción **************

    System.InvalidOperationException: El objeto ya está en uso.

       en System.Drawing.Graphics.CheckErrorStatus(Int32 status)

       en System.Drawing.Graphics.DrawImage(Image image, Int32 x, Int32 y, Int32 width, Int32 height)

       en System.Drawing.Graphics.DrawImage(Image image, Rectangle rect)

       en System.Windows.Forms.PictureBox.OnPaint(PaintEventArgs pe)

       en System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer)

       en System.Windows.Forms.Control.WmPaint(Message& m)

       en System.Windows.Forms.Control.WndProc(Message& m)

       en System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

       en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

       en System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    ************** Ensamblados cargados **************

    mscorlib

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll

    ----------------------------------------

    Control de asistencia JFSC

        Versión del ensamblado: 1.0.0.0

        Versión Win32: 1.0.0.0

        Código base: file:///C:/Users/CONTROL/AppData/Local/Apps/2.0/GHQ9PEYT.AB0/P5P6N8TG.5GL/cont..tion_45adbe6bc77b0959_0001.0000_887dcb18ee116dfe/Control%20de%20asistencia%20JFSC.exe

    ----------------------------------------

    Microsoft.VisualBasic

        Versión del ensamblado: 10.0.0.0

        Versión Win32: 14.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll

    ----------------------------------------

    System

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll

    ----------------------------------------

    System.Core

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll

    ----------------------------------------

    System.Windows.Forms

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

    ----------------------------------------

    System.Drawing

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

    ----------------------------------------

    System.Configuration

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll

    ----------------------------------------

    System.Xml

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll

    ----------------------------------------

    System.Runtime.Remoting

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll

    ----------------------------------------

    System.Data

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll

    ----------------------------------------

    System.Windows.Forms.resources

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_es_b77a5c561934e089/System.Windows.Forms.resources.dll

    ----------------------------------------

    System.Data.DataSetExtensions

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Data.DataSetExtensions/v4.0_4.0.0.0__b77a5c561934e089/System.Data.DataSetExtensions.dll

    ----------------------------------------

    System.Numerics

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll

    ----------------------------------------

    Accessibility

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll

    ----------------------------------------

    AForge.Video.DirectShow

        Versión del ensamblado: 2.2.0.0

        Versión Win32: 2.2.0.0

        Código base: file:///C:/Users/CONTROL/AppData/Local/Apps/2.0/GHQ9PEYT.AB0/P5P6N8TG.5GL/cont..tion_45adbe6bc77b0959_0001.0000_887dcb18ee116dfe/AForge.Video.DirectShow.DLL

    ----------------------------------------

    System.Data.resources

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Data.resources/v4.0_4.0.0.0_es_b77a5c561934e089/System.Data.resources.dll

    ----------------------------------------

    System.Transactions

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Transactions/v4.0_4.0.0.0__b77a5c561934e089/System.Transactions.dll

    ----------------------------------------

    System.EnterpriseServices

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.EnterpriseServices/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll

    ----------------------------------------

    AForge.Video

        Versión del ensamblado: 2.2.0.0

        Versión Win32: 2.2.0.0

        Código base: file:///C:/Users/CONTROL/AppData/Local/Apps/2.0/GHQ9PEYT.AB0/P5P6N8TG.5GL/cont..tion_45adbe6bc77b0959_0001.0000_887dcb18ee116dfe/AForge.Video.DLL

    ----------------------------------------

    zxing

        Versión del ensamblado: 0.14.0.0

        Versión Win32: 0.14.0.0

        Código base: file:///C:/Users/CONTROL/AppData/Local/Apps/2.0/GHQ9PEYT.AB0/P5P6N8TG.5GL/cont..tion_45adbe6bc77b0959_0001.0000_887dcb18ee116dfe/zxing.DLL

    ----------------------------------------

    mscorlib.resources

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_es_b77a5c561934e089/mscorlib.resources.dll

    ----------------------------------------

    System.Drawing.resources

        Versión del ensamblado: 4.0.0.0

        Versión Win32: 4.7.2046.0 built by: NET47REL1

        Código base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing.resources/v4.0_4.0.0.0_es_b03f5f7f11d50a3a/System.Drawing.resources.dll

    --------------------------------------

    ************** Depuración JIT **************

    Para habilitar la depuración Just In Time (JIT), el archivo de configuración de esta

    aplicación o equipo (machine.config) debe tener el

    valor jitDebugging establecido en la sección system.windows.forms.

    La aplicación también se debe compilar con la depuración

    habilitada

    Por ejemplo:

    <configuration>

        <system.windows.forms jitDebugging="true" />

    </configuration>

    Cuando esté habilitada la depuración JIT, cualquier excepción no controlada

    se enviará al depurador JIT registrado en el equipo

    en lugar de controlarlo mediante el cuadro de diálogo.


    • Editado Ricardo_raf7 viernes, 15 de diciembre de 2017 4:17
    viernes, 15 de diciembre de 2017 4:15
  • Ayudenme compañeros, tengo una aplicación en Vb.Net que usa una PictureBox para transmitir video de la Webcam, decodifica codigos QR, pero me sale esta excepcion  cada 5 horas o a veces 8 horas de encendido el sistema. y se pone el pícturebox en blanco con errorimage.

    System.InvalidOperationException: El objeto ya está en uso.

       en System.Drawing.Graphics.CheckErrorStatus(Int32 status)

       en System.Drawing.Graphics.DrawImage(Image image, Int32 x, Int32 y, Int32 width, Int32 height)

       en System.Drawing.Graphics.DrawImage(Image image, Rectangle rect)

       en System.Windows.Forms.PictureBox.OnPaint(PaintEventArgs pe)

       en System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer)

       en System.Windows.Forms.Control.WmPaint(Message& m)

       en System.Windows.Forms.Control.WndProc(Message& m)

       en System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

       en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

       en System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    ************** Ensamblados cargados **************


    domingo, 17 de diciembre de 2017 19:10
  • ¿Estás usando programación en multihilo? ¿No será que accedes a la interfaz de usuario desde el hilo secundario sin usar el Invoke, y por eso de vez en cuando se te corrompen las estructuras internas del programa?

    Comprueba que no exista en ningún sitio del programa una instrucción CheckForIllegalCrossThreadCalls=False.

    domingo, 17 de diciembre de 2017 19:26
  • Te puedo mostrar mi código fuente para que le des un vistazo ?

    lunes, 18 de diciembre de 2017 2:37
  • Si quieres puedes extraer las partes relevantes (aquellas en las que tengas dudas acerca de si pueden estar afectadas por el procesamiento en multihilo) y pon aquí en el foro los fragmentos pertinentes. Les echaremos un vistazo, bien sea yo mismo o bien algún otro participante del foro.
    lunes, 18 de diciembre de 2017 6:54
  • mports AForge.Video

    Imports AForge.Video.DirectShow

    Imports ZXing

    Imports System.Diagnostics

    Imports System.Speech

    Public Class Form1

        Dim FUENTES As FilterInfoCollection 'CAMARAS DISPONIBLES

        Dim WithEvents FUENTE As VideoCaptureDevice 'CAMARA

        Dim IMAGEN As Bitmap 'IMAGENES CAMARA

      

     FUENTES = New FilterInfoCollection(FilterCategory.VideoInputDevice)

    'INICIA LA CAMARA

            Try

                FUENTE = New VideoCaptureDevice(FUENTES(ComboBox1.SelectedIndex).MonikerString)

                AddHandler FUENTE.NewFrame, New NewFrameEventHandler(AddressOf video_NuevoFrame1)

                FUENTE.Start()

       Timer1.Interval = 500

            Timer1.Start()

     Private Sub video_NuevoFrame1(sender As Object, eventArgs As NewFrameEventArgs)

            'PRESENTA LAS IMAGENES EN EL PICTUREBOX1

            Try

                IMAGEN = TryCast(eventArgs.Frame.Clone(), Bitmap)

                PictureBox1.Image = IMAGEN

            Catch ex As Exception

            End Try

        Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick

    Dim DECODER As BarcodeReader = New BarcodeReader

                DECO = DECODER.Decode(PictureBox1.Image).ToString

    Try

                    PictureBox1.Image.Clone.Save("C:\Win7\System\dll\BASE\ingreso" + nombre + fecham + ".jpg", Drawing.Imaging.ImageFormat.Jpeg)

                Catch

                End Try

    martes, 19 de diciembre de 2017 0:28
  • Mi sospecha es que el evento NewFrame del VideoCaptureDevice puede estarse disparando en otro hilo. La documentación no es clara en ese sentido, pero investigando por la red he encontrado algún mensaje en otros foros en el que les ocurrían errores intermitentes como a ti y lo solucionaron transportando la ejecución al hilo principal (por ejemplo, usando Me.Invoke) dentro del evento NewFrame.
    martes, 19 de diciembre de 2017 7:46
  • Mi sospecha es que el evento NewFrame del VideoCaptureDevice puede estarse disparando en otro hilo. La documentación no es clara en ese sentido, pero investigando por la red he encontrado algún mensaje en otros foros en el que les ocurrían errores intermitentes como a ti y lo solucionaron transportando la ejecución al hilo principal (por ejemplo, usando Me.Invoke) dentro del evento NewFrame.

    Disculpa la insistencia, soy novato en esto, pero quisiera saber en ese caso como seria :

     Private Sub video_NuevoFrame1(sender As Object, eventArgs As NewFrameEventArgs )
            'PRESENTA LAS IMAGENES EN EL PICTUREBOX1
            Try

                IMAGEN = TryCast(eventArgs.Frame.Clone(), Bitmap)
                PictureBox1.Image = IMAGEN
            Catch ex As Exception
                PictureBox1.Refresh()

            End Try

        End Sub


    • Editado Ricardo_raf7 martes, 19 de diciembre de 2017 23:25
    martes, 19 de diciembre de 2017 23:08
  • Más o menos así:

    Private Sub video_NuevoFrame1(sender As Object, eventArgs As NewFrameEventArgs)
        Me.Invoke(Sub() 
             'PRESENTA LAS IMAGENES EN EL PICTUREBOX1
             Try
                 IMAGEN = TryCast(eventArgs.Frame.Clone(), Bitmap)
                 PictureBox1.Image = IMAGEN
             Catch ex As Exception
                 PictureBox1.Refresh()
             End Try
         End Sub)
    End Sub
    

    miércoles, 20 de diciembre de 2017 7:57
  • Más o menos así:

    Private Sub video_NuevoFrame1(sender As Object, eventArgs As NewFrameEventArgs)
        Me.Invoke(Sub() 
             'PRESENTA LAS IMAGENES EN EL PICTUREBOX1
             Try
                 IMAGEN = TryCast(eventArgs.Frame.Clone(), Bitmap)
                 PictureBox1.Image = IMAGEN
             Catch ex As Exception
                 PictureBox1.Refresh()
             End Try
         End Sub)
    End Sub

    Gracias voy a intentarlo ahora mismo... luego le cuento como me fue.
    jueves, 21 de diciembre de 2017 2:34
  • Debes instanciar la imagen antes de cada frame, o en segunda instancia realizar un .dispose, aunque esto perdera los atributos del objeto de imagen, en Aforge o  Emgucv, siempre da problemas, saludos..., espero te sirva
    sábado, 6 de enero de 2018 7:38
  • Sigo de cerca el hilo porq tengo el mismo problema.. Por favor, si logras encontrar algo, comentame

    ............... 5 min despúes de hacerte la cita de arriba............

    Solucioné el problema de una forma poco ortodoxa pero funciona.

    El problema es:

            IMAGEN = DirectCast(eventArgs.Frame.Clone(), Bitmap)

    ' En la linea anterior, pide a IMAGEN, actualizarse a nuevos datos en una función externa al código. Mientras esta función sigue en lo suyo, el código principal llama al objeto IMAGEN para actualizar PictureBox1 sin tomar en cuenta que todavía no está disponible:

            PictureBox1.Image = IMAGEN --- AQUI EL ERROR.

    Mi solución:

    Con un for;

    dim tiempo as integer

            IMAGEN = DirectCast(eventArgs.Frame.Clone(), Bitmap)
            tiempo = tiempo + 1

            If tiempo = 5 Then
                PictureBox1.Image = IMAGEN
                tiempo = 0
            End If

    Mientras Imagen sigue tomando sus nuevos datos, solo se actualiza el PictureBox1 cada 5 veces.

    No me falló mas.

    Me comentas.

    Antonio.


    • Editado tho7o viernes, 12 de enero de 2018 23:39
    viernes, 12 de enero de 2018 23:05