在C#中多次尝试一个方法

时间:2015-03-26 08:58:03

标签: c# .net lambda delegates

我有代码尝试数据库事务。 由于并发访问,这些可能会失败。

我想在重试循环中运行它们。即。尝试N次捕捉特定异常然后抛出它。

每个事务的所有代码都在静态函数内。

i.e
protected static ReturnType DoSomething(Connection conn, Arg1Type Arg1, Arg2Type Arg2...)
{
    using (var transaction = conn.GetTransaction)
    {
        ...
        transaction.commit();
    }
}

我能够想到的最好的方法是强制所有这些函数成为一个代理,为所有参数使用params object []。但这会抛弃所有类型的安全。

有更好的方法吗?

干杯

0 个答案:

没有答案