【求教帖】C# 程序执行过程中的未响应问题

说明:

C# Winform程序,在winform中点击按钮,调用matlab计算,计算结果存入Oracle。启动timer,显示根据结果绘制的曲线。

timer相关语句
public System.Timers.Timer Pretimer;
private void InitTimer()
        {
            //设置定时间隔(毫秒为单位)
            int interval = 500;
            Pretimer = new System.Timers.Timer(interval);
            //设置执行一次(false)还是一直执行(true)
            Pretimer.AutoReset = true;
            //设置是否执行System.Timers.Timer.Elapsed事件
            Pretimer.Enabled = false;
            //绑定Elapsed事件
            Pretimer.Elapsed += new System.Timers.ElapsedEventHandler(TimerUp);
        }
private void TimerUp(object sender, System.Timers.ElapsedEventArgs e)
        {
            try
            {
                if (this.IsHandleCreated)
                {
                    systemCounter += 1;
                    this.Invoke(new PreCureHmi(PreCureDisplay));
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);
            }
        }
查到system.timer.timer在未指定SynchronizingObject属性的时候默认是多线程运行,所以排除显示的程序阻塞了主线程
问题及排查:

点击按钮之后应用程序无响应。
一段一段语句的试,把问题定位到读数据库的方法中
断点调试也是未响应,但每一步都能走,不会死在哪里

求助内容:

应该怎么继续查呢

posted @ 2023-07-07 14:03  橘子Jane  阅读(470)  评论(1)    收藏  举报