最近工作时,经常碰到窗口出现未响应的现象,后面发现原因是这样的:
1、用户点击XX按钮时,在XX按钮事件中调用了aa.dll中的接口XXXAPI_TEST();
2、aa.dll中的接口XXXAPI_TEST()内部有进行线程同步的操作。
3、因为线程同步的原因,导致了窗口界面线程偶发性的出现未响应的现象
经验教训:
1、不要在窗口界面线程中进行线程同步,不然很可能卡死界面线程。
2、不要在窗口界面线程中进行耗时的操作。
3、调用EnterCriticalSection耗费的时间是随机的,从而导致了窗口界面偶发性卡死。