C# Linux上Mono中的USB挂载

C# Linux上Mono中的USB挂载,c#,linux,mono,C#,Linux,Mono,目前,我正在使用LibUSBDotNet来检测何时插入USB。但是,装载需要几秒钟的时间,因此目前,我正在运行以下代码: private void OnDeviceNotifyEvent(object sender, DeviceNotifyEventArgs e) { //Log.WriteDiagnostic(e.ToString()); Thread thread = new Thread(USBThreadStart); thread.Start(); } pr

目前,我正在使用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秒钟(足够挂载设备),然后在所有驱动器中循环寻找一个具有给定名称的驱动器(我们的U盘上为客户提供专有名称)。我这样做的原因是因为DriveInfo.GetDrives()将所有U盘作为固定类型而不是可移动类型返回


这是可行的,但肯定不是最好的方法。有没有更好的方法,在Linux上使用Mono C#来检测何时安装了U盘?

我不知道有哪一个库能做到这一点(我猜你也尝试过谷歌)。我可以提议你实现这样的库。你应该看看。您可以使用此概念来实现库。例如,编写一个通过管道接收通知的服务。

我不知道有哪个库可以这样做(我猜你也尝试过谷歌)。我可以提议你实现这样的库。你应该看看。您可以使用此概念来实现库。例如,编写一个通过管道接收通知的服务