Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/03/2009, 05:31
Avatar de Jose_minglein2
Jose_minglein2
 
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 6 meses
Puntos: 8
Cambiar UI en Subprocesos de WPF

Hola,

llevaba muchisimo tiempo sin pasar por aqui (cosas del tiempo disponible),

bueno les comento:

Estoy haciendo un videoChat mediante sockets en WPF con VB.NET (evidentemente Framework 3.5).

Bien la cuestión es que la recepción de la imagen la consigo OK, pero al visualizarla en un control de tipo image, me peta. Este es el código:
Código:
   Public Delegate Sub ChangeImageCallback(ByVal texto As String, ByVal img As BitmapImage)


    Private WithEvents remoteImg As New BitmapImage

Private Sub Recepcion()


        Try
            '				// Open The Port
            mytcpl = New TcpListener(text_Camera_rec_port)           
            mytcpl.Start() '						
            mysocket = mytcpl.AcceptSocket() 
            ns = New NetworkStream(mysocket)
             Dim myJpg As Image = Bitmap.FromStream(ns)
            myJpg.Save("c:\Prueba.jpg")  'CON ESTO COMPRUEBO QUE RECIVO LA IMAGEN Y ESTA ES OK

            Dim img As New BitmapImage
            img.BeginInit()
            img.StreamSource = ns
            img.EndInit()


            Dim dlg As ChangeImageCallback = New ChangeImageCallback(AddressOf ChangeImage)
            Dispatcher.BeginInvoke(Windows.Threading.DispatcherPriority.Normal, dlg, "Prueba", img)
            mytcpl.Stop() 


            If (mysocket.Connected = True) Then  	     
                While True
                    Recepcion() 			 
                End While
            End If
        Catch ex As Exception

        End Try
    End Sub

    Private Sub ChangeImage(ByVal texto As String, ByVal thisimg As BitmapImage)
        remoteImg = thisimg
        lblStatus.Text = texto
        Cam3.Source = thisimg  'AQUI PETA, SI PONGO SOLO EL .TEXT, LO CAMBIA OK
    End Sub
La excepción que obtengo es Targetinvocationexception. Como veis uso delegados, para no tener problemas con cruces de hilos, pero con el objeto de la UI Image, me peta al cambiarle el source.

¿Alguna idea de que puede estar pasando??