检测U盘插入和拔出遇到的问题?

KNET2010 2013-12-24 11:29:56

检测U盘插入和拔出遇到的问题:

在重写的WndProc中调用

ManagementObjectCollection USBControllerDeviceCollection = new ManagementObjectSearcher("SELECT * FROM Win32_USBControllerDevice").Get();


当插上U盘后,报错:


详细错误:
针对此 RuntimeCallableWrapper 向 COM 上下文 0x60f080 的转换失败,错误如下: 因为应用程序正在发送一个输入同步呼叫,所以无法执行传出的呼叫。 (异常来自HRESULT:0x8001010D (RPC_E_CANTCALLOUT_ININPUTSYNCCALL))。原因通常是创建此 RuntimeCallableWrapper 的 COM 上下文 0x60f080 已断开连接,或者该上下文正忙于执行其他操作,无法处理该上下文转换。将不会有代理服务于该 COM 组件上的请求,调用将直接转向该 COM 组件。这可能会导致损坏或数据丢失。要避免此问题,请确保在应用程序全部完成 RuntimeCallableWrapper (表示其内部的 COM 组件)之前,所有 COM 上下文/单元/线程都保持活动状态并可用于上下文转换。

该如何解决?
...全文
227 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
abc2013abc123 2014-09-19
  • 打赏
  • 举报
回复
引用 5 楼 xellossisme 的回复:
引用 2 楼 abc2013abc123 的回复:
试试多线程。
请问为什么会出现线程的问题?
错误提示告诉你了...
xellossisme 2014-09-15
  • 打赏
  • 举报
回复
引用 2 楼 abc2013abc123 的回复:
试试多线程。
请问为什么会出现线程的问题?
xellossisme 2014-09-15
  • 打赏
  • 举报
回复
请问你是怎么用多线程解决的吖?
KNET2010 2014-01-12
  • 打赏
  • 举报
回复
引用 2 楼 abc2013abc123 的回复:
试试多线程。
正解。
引用 1 楼 wangxiang1119 的回复:
兄弟,你解决了吗?我也遇到这问题了
解决了,我是通过多线程解决的。
abc2013abc123 2014-01-12
  • 打赏
  • 举报
回复
试试多线程。
杯酒人生 2014-01-03
  • 打赏
  • 举报
回复
兄弟,你解决了吗?我也遇到这问题了

110,566

社区成员

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

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

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