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
- HwndAppCommandInputProvider.cs
- PLINQETWProvider.cs
- EndpointConfigContainer.cs
- Typeface.cs
- Peer.cs
- RuntimeConfigLKG.cs
- BidOverLoads.cs
- DrawingCollection.cs
- ReadOnlyTernaryTree.cs
- XmlElementList.cs
- ExtendedPropertyDescriptor.cs
- BindToObject.cs
- WebConfigurationHostFileChange.cs
- SemanticBasicElement.cs
- NetMsmqBindingElement.cs
- PointAnimationUsingKeyFrames.cs
- ContainerUIElement3D.cs
- RecognizedWordUnit.cs
- TextLineBreak.cs
- XmlSerializerVersionAttribute.cs
- ToolStripItemClickedEventArgs.cs
- Timer.cs
- RangeValidator.cs
- EditBehavior.cs
- storepermission.cs
- Bitmap.cs
- UniqueIdentifierService.cs
- EmbossBitmapEffect.cs
- ScriptHandlerFactory.cs
- GlyphRunDrawing.cs
- HandlerFactoryWrapper.cs
- DataRow.cs
- AttributeConverter.cs
- LocalizationComments.cs
- RenderDataDrawingContext.cs
- BindingContext.cs
- XmlSchemaSimpleTypeList.cs
- FieldToken.cs
- ContactManager.cs
- XmlILModule.cs
- BamlLocalizabilityResolver.cs
- PropertyItem.cs
- AssemblySettingAttributes.cs
- ISAPIRuntime.cs
- RegexCompiler.cs
- MemberHolder.cs
- ToolboxComponentsCreatedEventArgs.cs
- ListenerConstants.cs
- SettingsSavedEventArgs.cs
- SerialErrors.cs
- SystemWebSectionGroup.cs
- SqlCrossApplyToCrossJoin.cs
- MobileUITypeEditor.cs
- BooleanSwitch.cs
- HtmlShimManager.cs
- WpfPayload.cs
- StrongNameIdentityPermission.cs
- ProtocolsConfigurationHandler.cs
- GPStream.cs
- Overlapped.cs
- SoapConverter.cs
- cache.cs
- CellTreeSimplifier.cs
- SharedStatics.cs
- StringStorage.cs
- SqlUtils.cs
- SQLInt64Storage.cs
- CodeLinePragma.cs
- DataViewManager.cs
- SaveRecipientRequest.cs
- HttpContext.cs
- MaskedTextBoxDesigner.cs
- COSERVERINFO.cs
- JournalEntryListConverter.cs
- StatusBarItemAutomationPeer.cs
- FormViewDeleteEventArgs.cs
- ToolboxItemLoader.cs
- ObjectView.cs
- IconConverter.cs
- ColorTransformHelper.cs
- GridViewRowPresenter.cs
- versioninfo.cs
- TransactedReceiveData.cs
- DataRecordInternal.cs
- SignatureHelper.cs
- EntityException.cs
- XsdValidatingReader.cs
- ObjectComplexPropertyMapping.cs
- TypeInitializationException.cs
- XmlQueryTypeFactory.cs
- PrintDocument.cs
- GridViewSelectEventArgs.cs
- SByte.cs
- Point.cs
- WorkflowElementDialog.cs
- ChineseLunisolarCalendar.cs
- MimeParameter.cs
- ErrorFormatterPage.cs
- OSEnvironmentHelper.cs
- FrameworkReadOnlyPropertyMetadata.cs