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
- ElementNotEnabledException.cs
- ResourcePool.cs
- DesignerActionPanel.cs
- PathSegmentCollection.cs
- JumpPath.cs
- DataGridSortCommandEventArgs.cs
- DataGridViewColumnHeaderCell.cs
- CodeMemberField.cs
- DataControlPagerLinkButton.cs
- HttpProfileBase.cs
- ExceptionUtil.cs
- ReadonlyMessageFilter.cs
- ListCollectionView.cs
- CheckBoxBaseAdapter.cs
- Deserializer.cs
- QueryResult.cs
- ExpandCollapseProviderWrapper.cs
- ConfigXmlSignificantWhitespace.cs
- PeerNameResolver.cs
- FactoryGenerator.cs
- TemplateModeChangedEventArgs.cs
- ExitEventArgs.cs
- cookiecontainer.cs
- SecureUICommand.cs
- WebUtil.cs
- BufferedReadStream.cs
- XsdBuildProvider.cs
- DiscriminatorMap.cs
- Screen.cs
- CodeLabeledStatement.cs
- ViewRendering.cs
- FileInfo.cs
- RoleGroup.cs
- OptionUsage.cs
- NavigationService.cs
- Translator.cs
- DataDocumentXPathNavigator.cs
- SatelliteContractVersionAttribute.cs
- ExceptionHelpers.cs
- EncodingTable.cs
- FileRegion.cs
- ShaderEffect.cs
- TextFormatterImp.cs
- SqlDataReader.cs
- EdmItemCollection.cs
- OrderPreservingPipeliningSpoolingTask.cs
- HttpListenerException.cs
- EventSinkActivity.cs
- XamlTypeMapperSchemaContext.cs
- SendMessageRecord.cs
- GcHandle.cs
- SwitchAttribute.cs
- HandlerBase.cs
- HostingMessageProperty.cs
- ManipulationDevice.cs
- TypeToken.cs
- WebPartZone.cs
- ToolStripSeparatorRenderEventArgs.cs
- Visual.cs
- PathParser.cs
- ListViewGroupCollectionEditor.cs
- StringTraceRecord.cs
- ReaderWriterLock.cs
- SpeechSeg.cs
- xmlglyphRunInfo.cs
- BaseAddressElementCollection.cs
- MatrixTransform3D.cs
- CookieProtection.cs
- HostedElements.cs
- TextMarkerSource.cs
- AgileSafeNativeMemoryHandle.cs
- LogicalTreeHelper.cs
- XamlRtfConverter.cs
- ObservableDictionary.cs
- SQLMembershipProvider.cs
- RelationshipNavigation.cs
- NetNamedPipeSecurity.cs
- CmsInterop.cs
- ClientUtils.cs
- KnownTypesHelper.cs
- TextRangeEdit.cs
- JoinSymbol.cs
- ExpandoObject.cs
- XpsFilter.cs
- DataBoundControl.cs
- WebPartExportVerb.cs
- EdmRelationshipRoleAttribute.cs
- UrlPath.cs
- AssemblyNameProxy.cs
- DragEventArgs.cs
- GradientBrush.cs
- Container.cs
- DesignerTransactionCloseEvent.cs
- SystemGatewayIPAddressInformation.cs
- COM2IPerPropertyBrowsingHandler.cs
- Utility.cs
- AuthenticationException.cs
- CheckPair.cs
- HybridObjectCache.cs
- SplayTreeNode.cs