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
- MemberDomainMap.cs
- SerTrace.cs
- SqlAliaser.cs
- DockAndAnchorLayout.cs
- CorrelationKey.cs
- ObjectRef.cs
- TypePropertyEditor.cs
- CodeDesigner.cs
- ConfigurationStrings.cs
- XPathPatternBuilder.cs
- StringInfo.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- Merger.cs
- ResourceKey.cs
- TypeSource.cs
- ClientSideQueueItem.cs
- SqlCommandBuilder.cs
- WebColorConverter.cs
- ExpressionBindingCollection.cs
- CreateRefExpr.cs
- ContentPresenter.cs
- XmlQualifiedName.cs
- AspNetSynchronizationContext.cs
- MatrixConverter.cs
- InputLanguageProfileNotifySink.cs
- GeneralTransformCollection.cs
- ButtonBase.cs
- BulletChrome.cs
- ReadContentAsBinaryHelper.cs
- followingquery.cs
- MaskPropertyEditor.cs
- WinEventWrap.cs
- HandleRef.cs
- ToolStripDropDownClosedEventArgs.cs
- RegexBoyerMoore.cs
- FilteredDataSetHelper.cs
- ParallelTimeline.cs
- ChoiceConverter.cs
- Compiler.cs
- Pair.cs
- ExceptionDetail.cs
- AuthenticatingEventArgs.cs
- PerfCounterSection.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- LayoutInformation.cs
- SqlOuterApplyReducer.cs
- XPathBinder.cs
- ConfigXmlCDataSection.cs
- CalloutQueueItem.cs
- FlowLayout.cs
- DependencyObjectProvider.cs
- TextParaLineResult.cs
- ReadWriteObjectLock.cs
- COM2AboutBoxPropertyDescriptor.cs
- NumberFunctions.cs
- CheckedPointers.cs
- WebHttpBindingElement.cs
- RIPEMD160.cs
- SelectedGridItemChangedEvent.cs
- SpellerError.cs
- ListViewItemSelectionChangedEvent.cs
- HotSpotCollection.cs
- QilParameter.cs
- TraceXPathNavigator.cs
- EventPrivateKey.cs
- DropSource.cs
- AnimationLayer.cs
- ShaderEffect.cs
- Propagator.JoinPropagator.cs
- ObjectStateFormatter.cs
- FileLoadException.cs
- typedescriptorpermissionattribute.cs
- XmlILOptimizerVisitor.cs
- AsymmetricSignatureDeformatter.cs
- XmlSchemaSimpleContentExtension.cs
- X509CertificateRecipientServiceCredential.cs
- ConnectorDragDropGlyph.cs
- MetadataFile.cs
- XmlSerializerAssemblyAttribute.cs
- DurationConverter.cs
- ServiceManager.cs
- ListItemParagraph.cs
- SerializerProvider.cs
- CultureInfo.cs
- SqlRemoveConstantOrderBy.cs
- PEFileEvidenceFactory.cs
- Simplifier.cs
- Collection.cs
- AutoGeneratedFieldProperties.cs
- SimpleWorkerRequest.cs
- MetafileHeaderEmf.cs
- SequentialActivityDesigner.cs
- GroupBoxAutomationPeer.cs
- Visual3D.cs
- ImpersonationContext.cs
- Calendar.cs
- securitycriticaldata.cs
- XPathBinder.cs
- RootBuilder.cs
- CustomCategoryAttribute.cs