C#WinForm应用程序运行中出现未响应问题

qq_15388085 2017-07-24 08:26:59
问题是这样的,C#WinForm,启动调试,运行程序不会出现任何问题,但是生成.exe应用程序运行时,常常会出现未响应的问题,过一会后就好了,但是得重新运行,这方面不是很懂,还请大神指点,谢谢
...全文
4103 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
rhaojie 2019-04-23
  • 打赏
  • 举报
回复
遇到了相同的坑,WinForm里如果要加循环的话,一定要开一个线程,然后后台执行,不然系统会崩溃的。。这个坑3天了才跳出来!!
zhenzaizai 2017-07-25
  • 打赏
  • 举报
回复
我也遇到过这样的问题,那是因为我的程序在构造函数里边去加载了计算机目录结构,同时读取了一些相关的配置,所以有的时候程序运行不起来或者加载页面非常缓慢,不知道你的会不会也是这种情况导致的。
xian_wwq 2017-07-25
  • 打赏
  • 举报
回复
引用 楼主 qq_15388085 的回复:
问题是这样的,C#WinForm,启动调试,运行程序不会出现任何问题,但是生成.exe应用程序运行时,常常会出现未响应的问题,过一会后就好了,但是得重新运行,这方面不是很懂,还请大神指点,谢谢
无响应可能的原因: 1.程序出现了异常,由于内部进行了捕获,程序可能不会退出或异常。 但是异常发生会引发无响应。 2.程序中有非常耗时的操作,比如频繁读写数据库,频繁IO操作,这些耗时操作如果没有放到工作线程中 由于主线程被阻塞,表象就是程序无响应。 所以要解决无响应没有通用的方法,必须根据功能业务各个环节的特性进行分析判断。
threenewbee 2017-07-24
  • 打赏
  • 举报
回复
调用了循环、连接数据库、网络、Office、发消息之类的操作么?它们会使得程序失去响应。这些代码要在后台线程异步执行。
吉普赛的歌 2017-07-24
  • 打赏
  • 举报
回复
先看一下 windows 的“事件查看器”, 里面应该有相关的内容。 如果查不到的话, 你在程序里应该加上类似于下面的代码(构造函数的你要改一下): 将相关的异常记在日志里面
/// <summary>
        /// 构造函数
        /// </summary>
        public SyncService()
        {
            AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
            InitializeComponent();
        }
        /// <summary>
        /// 捕获未处理异常
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            Exception ex = (Exception)e.ExceptionObject;
            string msg_IsTerminating = e.IsTerminating ? "公共语言运行库即将终止!" : "";
            Logger.Singleton.Fatal("捕获到未处理的异常!" + msg_IsTerminating, ex);
        }

111,076

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧