Visual Basic - Se traba mi computadora al ejecutar una aplicación VB

Life is soft - evento anual de software empresarial
   
Vista:

Se traba mi computadora al ejecutar una aplicación VB

Publicado por Hugo (1 intervención) el 15/10/2014 17:32:08
Hola, hice una aplicacion que leyera lo que entra por el puerto serial y envia los datos en una URL, al ejecutar el programa se traba mi computadora y tengo que darle el botonazo. Tenia un error que decía "Se tuvo acceso al control '' desde un subproceso distinto a aquel en que lo creó" pero le puse CheckForIllegalCrossThreadCalls = False, no se si esto ocasione que se trabe.

Les pongo el codigo para ver si me pueden apoyar, el error me lo manda en la parque que pongo en negritas.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
Public Class Form1
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        buscapuerto()
        CheckForIllegalCrossThreadCalls = False
    End Sub
 
    Private Sub buscapuerto()
        Try
            cmbport.Items.Clear()
            For Each puerto As String In My.Computer.Ports.SerialPortNames
                cmbport.Items.Add(puerto)
            Next
            If cmbport.Items.Count > 0 Then
                cmbport.SelectedIndex = 0
            Else
                MsgBox("No hay puertos disponibles en tu sistema")
            End If
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical)
        End Try
    End Sub
 
    Private Sub btnconectar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnconectar.Click
        Try
            With sppuerto
                .BaudRate = 9600
                .DataBits = 8
                .Parity = IO.Ports.Parity.None
                .StopBits = 1
                .PortName = cmbport.Text
                .Open()
 
                If .IsOpen Then
                    lblestado.Text = "Conectado"
                Else
                    MsgBox("Conexion fallida", MsgBoxStyle.Critical)
                End If
            End With
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical)
        End Try
    End Sub
 
    Private Sub btndesconectar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btndesconectar.Click
        sppuerto.Close()
        lblestado.Text = "Desconecato"
 
    End Sub
 
    Private Sub sppuerto_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles sppuerto.DataReceived
        Dim buffer As String
        buffer = sppuerto.ReadLine
        txtRecibe.Text = "Recibido>> " & buffer     'error aqui       
 
    End Sub
 
    Private Sub btnenviar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnenviar.Click
        Dim buffer As String
        Dim protocolo As String
        Dim servidor As String
        Dim puerto As String
        Dim peso As String
        Dim transaccion As String
        Dim urlMII As String
        Dim signo As String
        Dim arregloMensaje() As String
        buffer = sppuerto.ReadLine
        signo = buffer.Chars(6)
 
        If signo = "+" Then
            arregloMensaje = buffer.Split("+")
        Else
            arregloMensaje = buffer.Split("-")
 
        End If
 
        peso = arregloMensaje(1).Remove(7)
        protocolo = "http://"
        servidor = "<nombre del servidor>"
        puerto = "<numero de puerto>"
        transaccion = "/XMII/Runner?Transaction=GPorres/Bascula1&Peso_MII="
        urlMII = protocolo & servidor & ":" & puerto & transaccion & peso & credenciales
        'WebBrowser1.Navigate(urlMII)
 
 
    End Sub
End Class


Saludos y gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder