Правильный это:

попытку общего назначения и повторите попытку с таймаутом в C #. По сути, я хочу следующее:

bool stopTrying = false;
DateTime time = DateTime.Now;
while (!stopTrying)
{
    try
    {
        //[Statement to Execute]
    }
    catch (Exception ex)
    {
        if (DateTime.Now.Subtract(time).Milliseconds > 10000)
        {
            stopTrying = true;
            throw ex;
        }
    }
}

В случае выше, я жду 10 секунд, но это должен быть переменный тайм-аут на основе параметра. Я не хочу повторять этот полный код везде, где мне нужно его использовать. В моем коде есть несколько мест, где они не являются тайм-аутом, встроенным в API, и я получу исключение, если приложение не готово к выполнению оператора. Это также позволило бы избежать жесткой задержки в моем приложении перед этим заявлением.

Разъяснение: Рассматриваемое утверждение может быть чем-то вроде задания. Если я использую делегат и method.Invoke, разве вызов не ограничен внутри делегата, а не оригинальный метод?

Ответы на вопрос(6)

Ваш ответ на вопрос