Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 保持智能卡资源管理器在未插入读卡器的情况下运行_C#_.net_Windows_Pcsc - Fatal编程技术网

C# 保持智能卡资源管理器在未插入读卡器的情况下运行

C# 保持智能卡资源管理器在未插入读卡器的情况下运行,c#,.net,windows,pcsc,C#,.net,Windows,Pcsc,我正在尝试使用pcsc sharp监控读卡器何时连接/分离。但是,当没有插入读卡器整整2分钟时,我收到智能卡资源管理器未运行错误。在Windows“服务”应用程序中,您还可以看到智能卡服务已停止运行 我尝试了pcsc sharp示例代码中包含的简短示例(GitHub上的源代码中包含): 在内部,pcsc夏普使用,但MS doc的这一功能不是很有启发性 一个快速而肮脏的解决方案是用OnError方法重新订阅pcsc夏普的设备监视器 private static void OnError(E

我正在尝试使用pcsc sharp监控读卡器何时连接/分离。但是,当没有插入读卡器整整2分钟时,我收到
智能卡资源管理器未运行
错误。在Windows“服务”应用程序中,您还可以看到智能卡服务已停止运行

我尝试了pcsc sharp示例代码中包含的简短示例(GitHub上的源代码中包含):

在内部,pcsc夏普使用,但MS doc的这一功能不是很有启发性

一个快速而肮脏的解决方案是用OnError方法重新订阅pcsc夏普的设备监视器

    private static void OnError(Exception exception) {
        Console.WriteLine($"{DateTime.Now} ERROR: {exception.Message}");
        var factory = DeviceMonitorFactory.Instance;
        var subscription = factory
            .CreateObservable(SCardScope.System)
            .Subscribe(OnNext, OnError);
    }
。。。但是,有没有更干净的方法来保持智能卡资源管理器的运行

    private static void OnError(Exception exception) {
        Console.WriteLine($"{DateTime.Now} ERROR: {exception.Message}");
        var factory = DeviceMonitorFactory.Instance;
        var subscription = factory
            .CreateObservable(SCardScope.System)
            .Subscribe(OnNext, OnError);
    }