Windows的OpenFileDialog双击文件选择时,系统crash

来源:互联网 发布:sql注入 and 1 1 编辑:程序博客网 时间:2024/05/23 11:14

前段时间遇到一个调查,以作记录


这个问题在系统刚启动或者休眠激活之后,快速双击文件选择控件的「…」再现的几率大一些

调用堆栈信息如附件所示,原因如下:
快速双击文件选择btn的时候,btn的click事件被触发两次,所以openFileDialog.showDialog(Me)也被激发了两次,消息调用内部出现死锁,导致堆栈溢出
正常状态下第一次调用openFileDialog.showDialog(Me),模态窗口显示的话,btnclick事件不会被再触发,目前推测这个应该是windows的openFileDialog内部事件处理有问题

回避方案showDialog之前,将文件选择按钮disable,处理完成之后再enable
Private SubbtnSelectedFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesbtnSelectedFile.Click
   btnSelectedFile.enable = false
   openFileDialog.showDialog(Me)
   btnSelectedFile.enable = true
 End Sub

0 0
原创粉丝点击