我正在创建一个正在读取串口并在WindowsForms应用程序屏幕中更新数据的应用程序。
有时当您尝试关闭程序时会被锁定。 我正在使用代表。
我应该做错什么?
void sp1_LineReceived(object sender, LineReceivedEventArgs Args)
{
Invoke(new Action(() =>
{
// execute code
}));
}
初始化
public FormPrincipal()
{
InitializeComponent();
spSistema.LineReceived += new LineReceivedEventHandler(sp1_LineReceived);
// next codes
}
外部代码
public partial class FormPrincipal : Form
{
SerialPort spSimulador = new SerialPort();
public static PortaSerial spSistema = new PortaSerial();
答案 0 :(得分:2)
通常,BeginInvoke
优于Invoke
,因为它不会阻止。 See here。你可能在这里陷入僵局。
void sp1_LineReceived(object sender, LineReceivedEventArgs Args)
{
BeginInvoke(new Action(() =>
{
// execute code
}));
}