我正在使用WIA连接到扫描仪。我枚举了设备信息,然后尝试连接到设备。我不断收到例外。
来自HRESULT的异常:0x80210006
我在WPF窗口后面的代码中调用该代码。
DeviceManager manager = new DeviceManagerClass();
DeviceInfo device = null;
foreach (DeviceInfo deviceInfo in manager.DeviceInfos)
{
var ID = deviceInfo.DeviceID;
var props = deviceInfo.Properties ;
foreach (Property property in props)
{
var name = property.Name;
var descr = property.get_Value() as string;
}
var type = deviceInfo.Type;
if (type == WiaDeviceType.ScannerDeviceType)
device = deviceInfo;
}
if (device != null)
device.Connect();
我不知道为什么会这样。任何帮助,将不胜感激。
最佳答案
HRESULT: 0x80210006
是WIA_ERROR_BUSY
。
从WIA API Error Codes page:
WIA_ERROR_BUSY The WIA device is busy.
根据Communicating with a WIA Device in Multiple Threads or Applications的说法,似乎有其他东西正在访问该设备:
如果一个线程当前锁定了一个设备(正在与该设备进行主动通信),而另一个线程尝试调用与该设备进行主动通信的方法,则该方法将返回
WIA_ERROR_BUSY
错误。