Я пытаюсь подключить вес к компьютеру с помощью COM-порта RS232.Проблемы с закрытием и повторным открытием коммуникационного порта RS232
Я могу читать взвешивания, но когда я выхожу форму, и опять пришел -
Моя программа и компьютер замораживания.
это не мой код:
private void Main_Load(object sender, EventArgs e)
{
port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
port.DataReceived += new s system.IO.Ports.SerialDataReceivedEventHandler(Recepcion);
if (port.IsOpen == false)
{
try
{
port.Open();
}
catch (Exception oex)
{
MessageBox.Show(oex.ToString());
}
}
}
private void Actualizar(object s, EventArgs e)
{
//I try this
lblMSG.Text = ExtractDecimalFromString(port.ReadLine()).ToString();
port.DiscardInBuffer();
//Also I try this
lblMSG.Text = ExtractDecimalFromString(port.ReadExisting()).ToString();
port.DiscardInBuffer();
}
private void Recepcion(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
try
{
this.Invoke(new EventHandler(Actualizar));
}
catch { }
}
и когда я закрываю форму я это сделать:
port.DataReceived -= new System.IO.Ports.SerialDataReceivedEventHandler(Recepcion);
GC.Collect(); //also i try to remark this
port.Close();
port.Dispose();
this.Close();
Это не всегда замерзает, когда-нибудь да ... когда-то нет ....
Я искал всю сеть по-прежнему не отвечает и не разрешает.
Я действительно в отчаянии. Я хочу найти решение здесь
Что такого сложного? Нет решения? – GoldSoft