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
- MessageBox.cs
- XmlUrlResolver.cs
- RuntimeHelpers.cs
- DelegatingConfigHost.cs
- MimeReturn.cs
- xsdvalidator.cs
- SafeWaitHandle.cs
- WebPartChrome.cs
- XmlSchemaIdentityConstraint.cs
- DependencyPropertyValueSerializer.cs
- XamlGridLengthSerializer.cs
- UpdateRecord.cs
- COM2IProvidePropertyBuilderHandler.cs
- AppDomainShutdownMonitor.cs
- FakeModelItemImpl.cs
- HtmlButton.cs
- QueryTaskGroupState.cs
- StrongNamePublicKeyBlob.cs
- ResourcesBuildProvider.cs
- AgileSafeNativeMemoryHandle.cs
- PageOutputColor.cs
- MailAddress.cs
- WebPartZoneCollection.cs
- DeferredElementTreeState.cs
- ReadWriteObjectLock.cs
- LoginDesignerUtil.cs
- CorePropertiesFilter.cs
- Opcode.cs
- PageAdapter.cs
- CheckoutException.cs
- PropertyChangingEventArgs.cs
- PersonalizablePropertyEntry.cs
- COM2ColorConverter.cs
- NavigationService.cs
- FrameworkElement.cs
- LongTypeConverter.cs
- IntranetCredentialPolicy.cs
- DataGridViewHitTestInfo.cs
- TransformValueSerializer.cs
- ToolStripItemImageRenderEventArgs.cs
- ValidationError.cs
- UserCancellationException.cs
- Encoding.cs
- DisplayNameAttribute.cs
- InstanceKeyView.cs
- XmlIgnoreAttribute.cs
- ValidationErrorCollection.cs
- DiscoveryClientDuplexChannel.cs
- EntityTypeEmitter.cs
- EntityParameterCollection.cs
- DesignerPainter.cs
- Base64Decoder.cs
- DmlSqlGenerator.cs
- ScrollChangedEventArgs.cs
- XmlCharType.cs
- StoreItemCollection.cs
- DataSourceSerializationException.cs
- TextView.cs
- ProviderException.cs
- CodeDOMProvider.cs
- RunWorkerCompletedEventArgs.cs
- SmiXetterAccessMap.cs
- Vector3DCollection.cs
- TableAdapterManagerHelper.cs
- dsa.cs
- ContextBase.cs
- Hash.cs
- GuidConverter.cs
- DataGridViewColumnEventArgs.cs
- EditorZoneBase.cs
- ReceiveErrorHandling.cs
- FilterUserControlBase.cs
- ToolboxItemWrapper.cs
- EnlistmentTraceIdentifier.cs
- ProfileModule.cs
- JoinCqlBlock.cs
- DrawTreeNodeEventArgs.cs
- Type.cs
- DataGridViewControlCollection.cs
- OleDbRowUpdatingEvent.cs
- DocumentStatusResources.cs
- FileDialogCustomPlacesCollection.cs
- PeerApplicationLaunchInfo.cs
- CodeAccessPermission.cs
- HtmlSelect.cs
- ObjectContextServiceProvider.cs
- ColorMatrix.cs
- WebPartConnectionsCancelEventArgs.cs
- HostProtectionPermission.cs
- TemplateControlParser.cs
- EntityProviderServices.cs
- safesecurityhelperavalon.cs
- PtsHost.cs
- ChannelTokenTypeConverter.cs
- Vector3DCollectionConverter.cs
- TagPrefixCollection.cs
- Input.cs
- DefaultValueConverter.cs
- EventMappingSettingsCollection.cs
- EmissiveMaterial.cs