public RetryableCommandExecutor(RetryableCommand retryableCommand, TimeSpan maxWaitTime)
			{
				Platform.CheckForNullReference(retryableCommand, "retryableCommand");
				Platform.CheckNonNegative((int)maxWaitTime.TotalMilliseconds, "maxWaitTime");

				_maxWaitTime = maxWaitTime;
				_retryableCommand = retryableCommand;
				_needMoreMemory = true;
			}
Esempio n. 2
0
            public RetryableCommandExecutor(RetryableCommand retryableCommand, TimeSpan maxWaitTime)
            {
                Platform.CheckForNullReference(retryableCommand, "retryableCommand");
                Platform.CheckNonNegative((int)maxWaitTime.TotalMilliseconds, "maxWaitTime");

                _maxWaitTime      = maxWaitTime;
                _retryableCommand = retryableCommand;
                _needMoreMemory   = true;
            }
Esempio n. 3
0
 /// <summary>
 /// Executes the given <see cref="RetryableCommand"/> inside the memory manager.
 /// </summary>
 /// <remarks>
 /// The <see cref="RetryableCommand"/> will be executed at least once, but may be called
 /// repeatedly in the case where it throws an <see cref="OutOfMemoryException"/>.  When the
 /// <see cref="RetryableCommand"/> does throw an <see cref="OutOfMemoryException"/>, a memory
 /// collection will be triggered and the memory manager will continue to call the <see cref="RetryableCommand"/>
 /// until the call succeeds or <paramref name="maxWaitTimeMilliseconds"/> has elapsed.  If the timeout
 /// has elapsed and the call fails, the <see cref="OutOfMemoryException"/> is rethrown.
 /// </remarks>
 public static void Execute(RetryableCommand retryableCommand, int maxWaitTimeMilliseconds)
 {
     Execute(retryableCommand, TimeSpan.FromMilliseconds(maxWaitTimeMilliseconds));
 }
Esempio n. 4
0
 /// <summary>
 /// Executes the given <see cref="RetryableCommand"/> inside the memory manager.
 /// </summary>
 /// <remarks>
 /// The <see cref="RetryableCommand"/> will be executed at least once, but may be called
 /// repeatedly in the case where it throws an <see cref="OutOfMemoryException"/>.  When the
 /// <see cref="RetryableCommand"/> does throw an <see cref="OutOfMemoryException"/>, a memory
 /// collection will be triggered and the memory manager will continue to call the <see cref="RetryableCommand"/>
 /// until the call succeeds or <paramref name="maxWaitTime"/> has elapsed.  If the timeout
 /// has elapsed and the call fails, the <see cref="OutOfMemoryException"/> is rethrown.
 /// </remarks>
 public static void Execute(RetryableCommand retryableCommand, TimeSpan maxWaitTime)
 {
     new RetryableCommandExecutor(retryableCommand, maxWaitTime).Execute();
 }
Esempio n. 5
0
 /// <summary>
 /// Executes the given <see cref="RetryableCommand"/> inside the memory manager.
 /// </summary>
 /// <remarks>
 /// The <see cref="RetryableCommand"/> will be executed at least once, but may be called
 /// repeatedly in the case where it throws an <see cref="OutOfMemoryException"/>.  When the
 /// <see cref="RetryableCommand"/> does throw an <see cref="OutOfMemoryException"/>, a memory
 /// collection will be triggered and the memory manager will continue to call the <see cref="RetryableCommand"/>
 /// until the call succeeds or the default timeout of 1 second has elapsed.  If the timeout
 /// has elapsed and the call fails, the <see cref="OutOfMemoryException"/> is rethrown.
 /// </remarks>
 public static void Execute(RetryableCommand retryableCommand)
 {
     Execute(retryableCommand, _defaultWaitTimeMilliseconds);
 }