在Linux上以单声道安装USB

时间:2016-08-18 14:06:09

标签: c# linux mono

目前,我正在使用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记忆棒?

1 个答案:

答案 0 :(得分:0)

我不知道这样做的图书馆(而且我猜你试过谷歌)。我可以提供你实现这样的库。你应该看看here。您可以使用此概念来实现库。例如,编写一个服务,例如通过管道从中接收通知。