c# hid usb 卡死_USB HID在c#中的Read()上挂起

在C#中使用HID库处理USB设备时遇到死锁问题,原因是Read()调用在回调函数执行时阻塞。解决方案是改用ReadReport或Read避免死锁。参考代码示例展示了如何正确处理设备插入、移除和数据读取事件,以防止卡死。
摘要由CSDN通过智能技术生成

我设法让比例工作,在我的回调中,当比例返回数据时,我正在执行Read这是一个阻塞调用。因此创建了一个死锁,应该只使用ReadReport或Read来看看迈克的下面的例子,他发布了here。

using System;

using System.Linq;

using System.Text;

using HidLibrary;

namespace MagtekCardReader

{

class Program

{

private const int VendorId = 0x0801;

private const int ProductId = 0x0002;

private static HidDevice _device;

static void Main()

{

_device = HidDevices.Enumerate(VendorId, ProductId).FirstOrDefault();

if (_device != null)

{

_device.OpenDevice();

_device.Inserted += DeviceAttachedHandler;

_device.Removed += DeviceRemovedHandler;

_device.MonitorDeviceEvents = true;

_device.ReadReport(OnReport);

Console.WriteLine("Reader found, press any key to exit.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值