Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / System / Linq / Parallel / Utils / Util.cs / 1305376 / Util.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ // // Util.cs // //[....] // // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- using System.Collections.Generic; namespace System.Linq.Parallel { ////// Common miscellaneous utility methods used throughout the code-base. /// internal static class Util { //------------------------------------------------------------------------------------ // Simple helper that returns a constant depending on the sign of the argument. I.e. // if the argument is negative, the result is -1; if it's positive, the result is 1; // otherwise, if it's zero, the result is 0. // internal static int Sign(int x) { return x < 0 ? -1 : x == 0 ? 0 : 1; } //----------------------------------------------------------------------------------- // This is a temporary workaround for a VSWhidbey bug 601998 in the X64 JIT compiler. // Unlike the X86 JIT, null checks on value types aren't optimized away in Whidbey. // That means using the GenericComparerinfrastructure results in boxing value // types. This kills performance all over the place. This bug has been fixed in // Orcas (2.0 SP1), so once we're on the SP1 runtime, this can be removed. // internal static Comparer GetDefaultComparer () { if (typeof(TKey) == typeof(int)) { return (Comparer )(object)s_fastIntComparer; } else if (typeof(TKey) == typeof(long)) { return (Comparer )(object)s_fastLongComparer; } else if (typeof(TKey) == typeof(float)) { return (Comparer )(object)s_fastFloatComparer; } else if (typeof(TKey) == typeof(double)) { return (Comparer )(object)s_fastDoubleComparer; } else if (typeof(TKey) == typeof(DateTime)) { return (Comparer )(object)s_fastDateTimeComparer; } return Comparer .Default; } private static FastIntComparer s_fastIntComparer = new FastIntComparer(); class FastIntComparer : Comparer { public override int Compare(int x, int y) { return x.CompareTo(y); } } private static FastLongComparer s_fastLongComparer = new FastLongComparer(); class FastLongComparer : Comparer { public override int Compare(long x, long y) { return x.CompareTo(y); } } private static FastFloatComparer s_fastFloatComparer = new FastFloatComparer(); class FastFloatComparer : Comparer { public override int Compare(float x, float y) { return x.CompareTo(y); } } private static FastDoubleComparer s_fastDoubleComparer = new FastDoubleComparer(); class FastDoubleComparer : Comparer { public override int Compare(double x, double y) { return x.CompareTo(y); } } private static FastDateTimeComparer s_fastDateTimeComparer = new FastDateTimeComparer(); class FastDateTimeComparer : Comparer { public override int Compare(DateTime x, DateTime y) { return x.CompareTo(y); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TraceSwitch.cs
- COM2IProvidePropertyBuilderHandler.cs
- ZoneIdentityPermission.cs
- ClassGenerator.cs
- TextStore.cs
- BaseInfoTable.cs
- DataListItemCollection.cs
- SqlTypesSchemaImporter.cs
- BitmapSizeOptions.cs
- ViewDesigner.cs
- BuildResult.cs
- ToolStripDropTargetManager.cs
- ScriptBehaviorDescriptor.cs
- WebPartMenuStyle.cs
- NodeInfo.cs
- ListQueryResults.cs
- LogConverter.cs
- XmlConvert.cs
- Cursor.cs
- SortableBindingList.cs
- TextSpanModifier.cs
- VersionPair.cs
- AppDomainCompilerProxy.cs
- CompositeCollectionView.cs
- EditCommandColumn.cs
- CommandBindingCollection.cs
- XPathChildIterator.cs
- EntityCollectionChangedParams.cs
- WebZone.cs
- ListControlDesigner.cs
- SoapElementAttribute.cs
- QilLoop.cs
- HandleCollector.cs
- PropertyChangingEventArgs.cs
- CommonObjectSecurity.cs
- DrawListViewItemEventArgs.cs
- FeatureSupport.cs
- RightNameExpirationInfoPair.cs
- WindowsFormsHostPropertyMap.cs
- InternalDispatchObject.cs
- ObjectAssociationEndMapping.cs
- Serialization.cs
- ModuleConfigurationInfo.cs
- DataTemplateSelector.cs
- ImageButton.cs
- ResizeGrip.cs
- EventDescriptor.cs
- WebPartAuthorizationEventArgs.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- CalendarButton.cs
- OrderByQueryOptionExpression.cs
- InstanceDataCollection.cs
- GroupQuery.cs
- ScrollEvent.cs
- DataContractSet.cs
- Sql8ConformanceChecker.cs
- ContentElement.cs
- OperationPickerDialog.designer.cs
- MSAAEventDispatcher.cs
- OLEDB_Enum.cs
- XmlStrings.cs
- IList.cs
- OraclePermissionAttribute.cs
- Zone.cs
- ListBase.cs
- StoreItemCollection.cs
- TrackingStringDictionary.cs
- DataErrorValidationRule.cs
- TranslateTransform3D.cs
- EntityModelBuildProvider.cs
- CellParaClient.cs
- InvalidEnumArgumentException.cs
- SplitterDesigner.cs
- XmlNamedNodeMap.cs
- TileModeValidation.cs
- JoinSymbol.cs
- ColorConverter.cs
- SmiConnection.cs
- AmbientLight.cs
- SelectionProviderWrapper.cs
- GenericsInstances.cs
- StylusEventArgs.cs
- HelpEvent.cs
- ForwardPositionQuery.cs
- MatrixAnimationUsingPath.cs
- SuppressMergeCheckAttribute.cs
- SafeThemeHandle.cs
- HttpListenerResponse.cs
- Rotation3D.cs
- Group.cs
- ByteAnimationUsingKeyFrames.cs
- EnterpriseServicesHelper.cs
- EventLogStatus.cs
- ReadWriteControlDesigner.cs
- ObjectStateEntryDbDataRecord.cs
- Converter.cs
- DesignerSerializerAttribute.cs
- DocumentSequenceHighlightLayer.cs
- URLMembershipCondition.cs
- CipherData.cs