问题场景:
一个上位机用于显示以太网传来的数据,自定义用户控件里面使用了datagridview用来显示数据,相应的加了一个定时器刷新数据,主界面调用这个自定义用户控件。
然后调试可以正常进行,结束调试,然后重新打开主界面的设计页面,VS2019卡死退出。
解决方法:
注释掉定时器里面的内容,进行一次调试,然后可以正常打开主界面的设计页面,需要时去掉注释即可。
原理未知,有大佬知道可以教教
新发现
最近发现是调试停止但是定时器仍继续运行的原因,奇怪的是关闭工程,或者重启电脑,定时器仍然会保持上一次调试的状态运行,就离谱
可以将定时器使能设置为false,然后在需要的时候打开,能避免这个问题
在主界面打开控件里的定时器需要使用Invoke,在应用程序的主线程上执行指定的委托
比如,
realTimeDataDC1.Invoke(new MethodInvoker(delegate{
realTimeDataDC1.timer1.Start();}));