0

我有一个问题,我的代码在调用 Dll 中的 LogIn 函数以连接到服务器上的应用程序时冻结,但它不会经常发生。这只发生在我登录并且有一个连接之后尝试没有连接的情况下,该尝试在超时之前重新连接(反复尝试登录),然后再次尝试登录,此时它永远位于对 Dll 的函数调用中。一旦从服务器获得所需的数据,每个 LogIn 后面都会有一个 LogOut。这是引入Dll函数的方式:

    [DllImport("SafeComDLLs\\scApi.dll",CharSet=CharSet.Auto, CallingConvention=CallingConvention.Cdecl)]
    private static extern int sc_LoginByLogon(string szlpAddr,string szuserLogon,string szPassword);

这是我用来连接服务器的代码:

    public int LogIn(string ipAddress, string userName, string password)
    {
        int result = -1;

        try
        {
             result = sc_LoginByLogon(ipAddress, userName, password);
             if (result == 0)
                 _log.Info("Log in Success");
             else
                 _log.Error("Log in failed, error message : " + result.ToString());
        }
        catch (Exception e)
        {
            _log.Error("sc_LoginByLogon failed with exception : " + e.Message);
        }
        return result;
    }

如您所见,我捕获了异常,但是没有抛出异常,并且代码仅位于此部分:

         result = sc_LoginByLogon(ipAddress, userName, password);
4

0 回答 0