Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / RunTime / DbRetry.cs / 1305376 / DbRetry.cs
using System; using System.Collections.Generic; using System.Text; using System.Threading; namespace System.Workflow.Runtime { internal class DbRetry { private const short _defaultMaxRetries = 20; private const int _defaultRetrySleep = 2000; private const short _spinCount = 3; private short _maxRetries = _defaultMaxRetries; private int _retrySleep = _defaultRetrySleep; private bool _enableRetries = false; protected DbRetry() { } internal DbRetry(bool enableRetries) { _enableRetries = enableRetries; } internal short MaxRetries { get { return _maxRetries; } } internal bool TryDoRetry(ref short retryCount) { if (CanRetry(retryCount++)) { RetrySleep(retryCount); return true; } else return false; } internal bool CanRetry(short retryCount) { if (!_enableRetries) return false; if (retryCount < _maxRetries) return true; else return false; } internal void RetrySleep(short retryCount) { // // For the first couple of retries just spin // If we fail _spinCount times start then introduce a sleep if (retryCount <= _spinCount) return; int sleep = _retrySleep * retryCount; Thread.Sleep(sleep); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.Collections.Generic; using System.Text; using System.Threading; namespace System.Workflow.Runtime { internal class DbRetry { private const short _defaultMaxRetries = 20; private const int _defaultRetrySleep = 2000; private const short _spinCount = 3; private short _maxRetries = _defaultMaxRetries; private int _retrySleep = _defaultRetrySleep; private bool _enableRetries = false; protected DbRetry() { } internal DbRetry(bool enableRetries) { _enableRetries = enableRetries; } internal short MaxRetries { get { return _maxRetries; } } internal bool TryDoRetry(ref short retryCount) { if (CanRetry(retryCount++)) { RetrySleep(retryCount); return true; } else return false; } internal bool CanRetry(short retryCount) { if (!_enableRetries) return false; if (retryCount < _maxRetries) return true; else return false; } internal void RetrySleep(short retryCount) { // // For the first couple of retries just spin // If we fail _spinCount times start then introduce a sleep if (retryCount <= _spinCount) return; int sleep = _retrySleep * retryCount; Thread.Sleep(sleep); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RecognizeCompletedEventArgs.cs
- RepeaterCommandEventArgs.cs
- DataMisalignedException.cs
- ReferenceTypeElement.cs
- TextureBrush.cs
- RequiredAttributeAttribute.cs
- CustomAssemblyResolver.cs
- HttpPostServerProtocol.cs
- IndexerHelper.cs
- ContextMarshalException.cs
- GridLengthConverter.cs
- WsatConfiguration.cs
- DataRelationPropertyDescriptor.cs
- BlurEffect.cs
- ObjectMemberMapping.cs
- DecoderNLS.cs
- StylusTouchDevice.cs
- ComponentChangedEvent.cs
- ListItemCollection.cs
- MouseEvent.cs
- FigureHelper.cs
- XmlEnumAttribute.cs
- UserInitiatedNavigationPermission.cs
- AnimationException.cs
- SplineQuaternionKeyFrame.cs
- DataService.cs
- WaitForChangedResult.cs
- DrawingContext.cs
- shaperfactory.cs
- TreeIterator.cs
- AnimatedTypeHelpers.cs
- ThreadSafeList.cs
- SafeFreeMibTable.cs
- TypefaceMetricsCache.cs
- Calendar.cs
- ConfigurationSectionGroup.cs
- ToolStripDropDownButton.cs
- RuntimeVariablesExpression.cs
- WebControlParameterProxy.cs
- ClientBuildManager.cs
- CodeDomLoader.cs
- ElementAction.cs
- OdbcError.cs
- DataServiceExpressionVisitor.cs
- XmlDocumentSchema.cs
- GrammarBuilderBase.cs
- ExceptionWrapper.cs
- smtpconnection.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- PersonalizationStateInfo.cs
- RecordConverter.cs
- FrameworkElement.cs
- StatusBarPanel.cs
- UpdateTranslator.cs
- RegexCode.cs
- SerializationFieldInfo.cs
- TemplatedWizardStep.cs
- ElementUtil.cs
- ToolbarAUtomationPeer.cs
- ImpersonateTokenRef.cs
- DataObject.cs
- cryptoapiTransform.cs
- ServiceCredentialsSecurityTokenManager.cs
- UnauthorizedAccessException.cs
- HtmlObjectListAdapter.cs
- IntellisenseTextBox.cs
- ReadOnlyCollection.cs
- DebuggerAttributes.cs
- HelpInfo.cs
- ThreadStartException.cs
- PromptEventArgs.cs
- Utils.cs
- FileIOPermission.cs
- BitSet.cs
- NavigationEventArgs.cs
- TextRange.cs
- EncodingStreamWrapper.cs
- XXXOnTypeBuilderInstantiation.cs
- SystemIPInterfaceStatistics.cs
- XPathDocumentIterator.cs
- DocumentGrid.cs
- EventLogConfiguration.cs
- QilFunction.cs
- RightNameExpirationInfoPair.cs
- RangeValidator.cs
- MenuItem.cs
- BamlBinaryWriter.cs
- DesignBindingPicker.cs
- WmpBitmapDecoder.cs
- SafeSerializationManager.cs
- CurrencyWrapper.cs
- TableDesigner.cs
- FileUtil.cs
- LicenseProviderAttribute.cs
- RadioButton.cs
- NativeMethodsOther.cs
- DataException.cs
- GridViewCancelEditEventArgs.cs
- SizeAnimationClockResource.cs
- ListView.cs