安全地捕获API崩溃/退出

时间:2014-06-16 20:57:01

标签: c#

我正在通过其API将第三方电子解算器用于我的C#程序。

我的问题是,当网络许可证不可用时,第三方软件有时会关闭。

程序技术支持人员说,这是因为许可证不可用时会发送退出信号。

现在,当第三方软件关闭时,我的程序也会关闭。有什么方法可以避免这种情况吗?

示例代码如下:

public class PF_Interface {

    WApi apiInstance;

    public void CreateAPI() {
        apiInstance = WApi.WCreateApiInstance();
    }
}

如果程序不可用,则行apiInstance = WApi.WCreateApiInstance();将不返回任何内容,并且执行不再进行。

我想以某种方式独立于我的程序运行API,所以当它关闭时,我的程序仍在运行。

1 个答案:

答案 0 :(得分:2)

这里的清洁选项是使用两个过程。

脏选项是使用Microsoft Detours或类似的挂钩技术来捕获对ExitProcess的调用并抛出您可以在自己的代码中捕获的异常。但是,不知道图书馆的状态如何,所以不要指望能够在许可证可用后再试一次。