问题背景 C#小白,由于本公司IM系统服务端(java)是本人独立开发的,加上现在所在项目需要对接IM系统,于是IM的客户端(C#实现)对接工作就交给我了.于是C#小白的我天真的以为只要调用C#端的SDK接口真搞定了.起初都还好,对接工作都很正常,没什么大问题.可是随着时间的不断流逝,终于在项目组小伙伴的不断使用中发现经常登不上IM系统,然而让我过去调试的时候又发现是正常的,让人很抓狂有木有! 直到他们再次重现BUG给我看的时候,我发现服务端日志中不断收到登录请求,而且他们程序关闭之后还是这样,…
今天休息在家,由于天气热再加上疫情原因,就在家里呆着,空闲时想着,在很早以前(约3年前),产品人员跟我提了一个需求,那就是winform桌面程序的图标能否根据节日动态更换,这种需求在移动APP上还是比较常见,比如:淘宝.天猫.京东.360等,它们在逢节假日时除了APP内容有更新,APP ICON也是都更新了的,但PC端的应用程序(APP)则很少见到说有动态更新图标的,故当时我是直接回绝了的,明确表示做不了,但今天我仔细想了一下,其实也是可以实现的,虽然无法直接更新桌面图标,但我们可以更新替换掉桌…
本文主要以一个简单的小例子,描述C# Winform程序异常关闭时,如何进行捕获,并记录日志. 概述 有时在界面的事件中,明明有try... catch 进行捕获异常,但是还是会有异常关闭的情况,所以在程序中如何最终的记录一些无法捕获的异常,会大大方便问题的定位分析及程序优化. 涉及知识点 以下两个异常事件,主要应用不同的场景. Application.ThreadException 在发生应用程序UI主线程中未捕获线程异常时发生,触发的事件. AppDomain.CurrentDomain.U…
本文参考网上搜索的信息,并做了适当修改可以让捕捉到异常之后阻止程序退出. 另给出了通过命令行自动重启的方法. 如果一个线程里运行下面的代码 ; / a; 将会导致程序自动结束,而且没有任何提示信息 但是如果是在主线程里运行这个代码,是会弹出异常信息对话框的 请问如何在线程里也出现这个异常信息对话框.或者避免程序直接退出,忽略异常,继续往下执行呢?   在WINFORM主线程捕获全部异常就行,如下代码: //处理未捕获的异常 Application.SetUnhandledExceptionMod…
iOS程序闪退是一种比较常见的现象.闪退的情况很多,造成程序闪退的原因也很多. ================================启动时闪退=================================== 情况一: 秒退是发生在程序刚刚启动的时候,在开发.苹果审核阶段都没有被发现的最大可能性就是,这个问题只会发生在老版系统.老版机型上. 出现原因: 对于很多开发者,进行所有 iOS 版本,所有 iOS 机型覆盖测试是有难度的,苹果审核时也只是重点审核该应用在新机器.新版本下的…
1,程序异常崩溃后用windbg辅助调试解决的经验  状况:我的程序调用别人的库做 文件写入工作. 在这一过程中出现异常,程序崩溃. 经反复检查,认为自己的程序没有错,但无法判断在别人库里哪里有错. 使用windbg绑定程序进程进行调试,可以在发生异常时候,获取函数调用顺序,进而知道在哪个函数出了异常. 由截图可见,在我的程序函数CEncryptionUtils::write_user_certs调用别人的MWHwMan库的SDFP_Close函数中调用另一个人的sdfp_lib库中的SD_Sa…
在我们一般的程序中,为一般的界面元素添加一定的图标展示,有助于提升界面的整体的美观.结合排版布局,以及固定场景的图标,往往给用户非常好的直观感受:统一.美观.易理解.因此在一般的程序界面中,都尽量在略显单调的界面增加一些图标进行点缀,能够达到较好的整体效果.本文介绍在Winform程序界面中,可以使用自己的图标库,也可以引入DevExpress程序中使用内置的图标,从而实现给开发的程序润色. 1.使用自己的图标库 不管在Web还是在WInform项目里面,开发者积累一定的图标库,包括256,12…
C# 程序异常管理方案 1.程序出现未处理异常(程序中未捕获异常.添加异常处理) 2.程序添加全局异常捕获 tip:程序已处理异常不在捕获范围内. /// <summary> /// 应用程序的主入口点. /// </summary> [STAThread] static void Main() { //全局异常捕捉 Application.ThreadException += Application_ThreadException; //UI线程异常 AppDomain.Curr…
AIX操作系统有时会出现程序异常不释放光驱,可以用以下命令进行处理: #fuser -kxuc /dev/cd0 或者 #fuser /dev/cd0 以上命令会列出访问光驱设备的所有进程,然后使用kill -9 pid终止进程即可.…
用户登录成功后,将用户名保存Session Session["usrename"]=username; 退出后Sessssion["username"]=string.Empty; 在页面的Page_Load中判断 try { if(string.IsNullOrEmpty(Session["username"].ToString())) { 跳回首页; } else { 未退出的; } }catch { 跳回首页; } 版权声明:本文为博主原创…