C# Ado.net OracleCommand不会引发超时异常(执行存储过程)

C# Ado.net OracleCommand不会引发超时异常(执行存储过程),c#,ado.net,oraclecommand,C#,Ado.net,Oraclecommand,我正在使用System.OracleClient.OracleCommand执行一个ORACLE存储过程,并设置CommandTimeout=5;(例如) 但是我想设置一个超时,如果命令对象的执行时间超过5分钟,它应该被中止(获取异常…OracleException),这样我就可以向用户显示一条错误消息。让我知道如何才能做到这一点。这是我编写的代码示例 try { _dbConnectionString.Open();

我正在使用
System.OracleClient.OracleCommand
执行一个ORACLE存储过程,并设置
CommandTimeout=5;(例如)

但是我想设置一个超时,如果命令对象的执行时间超过5分钟,它应该被中止(获取异常…
OracleException
),这样我就可以向用户显示一条错误消息。让我知道如何才能做到这一点。这是我编写的代码示例

    try
    {
        _dbConnectionString.Open();               
        var cmdOracle = new OracleCommand("hfghgh", _dbConnectionString)
        {
            CommandType = CommandType.StoredProcedure
        };
        OracleCommandBuilder.DeriveParameters(cmdOracle);               
        cmdOracle.Parameters["inputParam"].Value = 1;                
        tran =_dbConnectionString.BeginTransaction(IsolationLevel.ReadCommitted);
        cmdOracle.Transaction = tran;
        cmdOracle.CommandTimeout = 5;

        await cmdOracle.ExecuteNonQueryAsync();
        tran.Commit();
        return res = cmdOracle.Parameters["outputParam"].Value.ToString();
    }
    catch (OracleException ex)
    {
        dynamic exOra = ex;
        int errorNo = exOra.Number;
        if (errorNo == 01013)
        {
            throw new ResponseFailException(ex);
        }
        else
        {
            throw ex;
        }
    }

可能重复的我需要设置定时器和计数秒在后端部分使用您建议的方式。有没有办法设置CommandTimeout任意值(例如5)并获取异常?(超时)基于重复-不,看起来不像。我的问题与超时抛出异常有关。我已经分配(例如)5秒给(CommandTimeout=5),但这无助于获取异常。我怎么做?