关于切换输入法时程序死机的问题

博客讲述了作者在.NET应用程序中遇到切换输入法导致程序死机的问题,通过排查发现是由于特定模块和消息响应机制与输入法冲突引起。尝试了多种解决方案无效,最终定位到消息通知机制导致的死锁,并通过改变消息发送方式解决了问题。作者强调了解决问题的过程虽然艰难,但带来的成就感和技术成长是宝贵的。
摘要由CSDN通过智能技术生成
    前几天工程验证时发现一个问题,就是在文本框中切换输入法时程序会死机,而另一个版本的程序则不会。现有两个版本的程序在同时验证,且称它们为产品A和产品B。虽然不是同一个产品,但它们是基本于同一个平台,且大部分模块相同。那为什么产品A会出现这个问题而产品B不会出现呢?产品A在去年六月份曾发布过一个版本时也出现过这个问题,但后来从当前的.NET2003升级到.NET2005时就好了。但现在为什么还会出现呢,从不同的产品出现的情况不同着手分析如下。
    它们不同之处:一是有几个应用模块不同; 二是编译的机器不同(产品B是在同事的机器上编译的);三是产品A中的一些界面是去年.NET2003开发的。
    针对上述分析,初步的解决方案为:
    1.将产品A在其他电脑上编译运行,看是否会出现相同情况。
    2.将产品A中的控件特别是TextBox用2005重新实现。
    3.安装微软最新版本框架Framework3.0。
    但结果都推翻了当前的判断,这些方案都没有效果。那么,网上又能找到什么答案呢?搜索结果归纳如下:
    1.更改textbox的ImeMode属性。
    2.输入法问题,有的五笔输入法有问题。
    3.程序中相关应用调用到的API函数与输入有冲突。
    4.使用了不适应VS。NET的控件。
    ......
    虽然贴子里面说法有多种,但一一试过后效果甚微,而且几乎找不到什么规律,在不同的条件下会出现的情况不同,比如启动监护时会出现,停止监护又不会出现等,但在其他条件下又推翻了这种规律判断。那问题到底出现在哪儿呢,此时我忽略了一个重要的问题,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值