Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: проблема с com портом Добавлено: 24.12.05 21:30  

Автор вопроса:  ping
Привет всем!
Заюзал VS2005, дабы поработать с com портом... (там есть готовый компонент)
Так вот все работает, одна напасть — есть событие, которое слушает данный порт.
Почему то не могу получить данные из этого события


Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived

label.Text = SerialPort1.ReadExisting()

End Sub

Вылазет ексепшин "Illegal cross-thread operation: Control 'txtRead' accessed from thread other than the thread it was created on"
Как это победить?

Eсть решение для C# c ипользованием делегата

private void serialPort1_ReceivedEvent(object sender, SerialReceivedEventArgs e)
{
MethodInvoker d = delegate() { txtRead.Text = serialPort1.ReadLine(); }
txtRead.Invoke(d);
}
Помогите переделать на VB

Ответить

  Ответы Всего ответов: 1  

Номер ответа: 1
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #1
Добавлено: 25.12.05 10:04
Delegate Sub ReadSerialPort ()

Private Sub ReadSeriaPortDelegateHandler ()
   txtRead.Text = serialPort1.ReadLine()
End Sub

Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
   Dim d As New ReadSerialPort (AddressOf ReadSerialPortDelegateHandler)
   txtRead.Invoke(d)
End Sub

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам