C#利用ucSwitch关闭串口时StackOverflowException
个人记录
本来想实现一个switch控制连接/断开串口,为了保证一致,在serialPort.close()之后加多一个ucSwitch.Checked=false
,然后发现每次close的时候都会报错
StackOverflowException
private void ucSwitch_CheckedChanged(object sender, EventArgs e){
serialPort.close();
ucSwitch.Checked = false;
}
后面发现不管你ucSwitch的checked是什么状态,只要给checked赋一次值就会触发一次CheckedChanged
,也就是说就算我Checked已经是false,再来一次Checked=false
也会继续触发当前函数,无限调用,也就StackOverflowException了