当前位置: 代码迷 >> 综合 >> VS2019 C#自定义用户控件定时器导致工程卡死退出的问题
  详细解决方案

VS2019 C#自定义用户控件定时器导致工程卡死退出的问题

热度:26   发布时间:2023-12-01 10:05:03.0

问题场景:
一个上位机用于显示以太网传来的数据,自定义用户控件里面使用了datagridview用来显示数据,相应的加了一个定时器刷新数据,主界面调用这个自定义用户控件。
然后调试可以正常进行,结束调试,然后重新打开主界面的设计页面,VS2019卡死退出。

解决方法:
注释掉定时器里面的内容,进行一次调试,然后可以正常打开主界面的设计页面,需要时去掉注释即可。

原理未知,有大佬知道可以教教

新发现
最近发现是调试停止但是定时器仍继续运行的原因,奇怪的是关闭工程,或者重启电脑,定时器仍然会保持上一次调试的状态运行,就离谱

可以将定时器使能设置为false,然后在需要的时候打开,能避免这个问题

在主界面打开控件里的定时器需要使用Invoke,在应用程序的主线程上执行指定的委托
比如,

            realTimeDataDC1.Invoke(new MethodInvoker(delegate{
    realTimeDataDC1.timer1.Start();}));
  相关解决方案