目前,我正在使用LibUSBDotNet来检测何时插入USB。但是,安装需要几秒钟,所以目前我正在运行此代码:
private void OnDeviceNotifyEvent(object sender, DeviceNotifyEventArgs e)
{
//Log.WriteDiagnostic(e.ToString());
Thread thread = new Thread(USBThreadStart);
thread.Start();
}
private void USBThreadStart()
{
Thread.Sleep(5000);
DriveInfo[] drives = DriveInfo.GetDrives();
foreach (DriveInfo drive in drives)
if (drive.Name.Contains("/SomeUsbName"))
Log.WriteDiagnostic("Usb Found.");
}
在此,我启动一个等待5秒的线程(足以安装设备),然后遍历所有具有给定名称的驱动器(我们在USB记忆棒上为客户提供专有命名)。我这样做的原因是因为DriveInfo.GetDrives()将所有USB记忆棒作为固定类型而不是可移动类型返回。
这很有效,但它肯定不是最好的方法。有没有更好的方法,使用Linux上的Mono C#来检测何时安装USB记忆棒?
答案 0 :(得分:0)
我不知道这样做的图书馆(而且我猜你试过谷歌)。我可以提供你实现这样的库。你应该看看here。您可以使用此概念来实现库。例如,编写一个服务,例如通过管道从中接收通知。