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
- CodeExpressionCollection.cs
- XmlStreamStore.cs
- WS2007FederationHttpBindingCollectionElement.cs
- GuidelineCollection.cs
- StreamUpgradeInitiator.cs
- DataSourceDesigner.cs
- XmlSchemaElement.cs
- TdsValueSetter.cs
- RootProfilePropertySettingsCollection.cs
- AccessibilityHelperForVista.cs
- TempFiles.cs
- HybridDictionary.cs
- NativeCppClassAttribute.cs
- SQLByte.cs
- ComponentDispatcherThread.cs
- SafeRightsManagementEnvironmentHandle.cs
- HMACSHA256.cs
- TypefaceCollection.cs
- QueryContinueDragEvent.cs
- PropertyDescriptorCollection.cs
- SQLSingleStorage.cs
- DigitalSignatureProvider.cs
- SchemaImporterExtensionsSection.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- TraceContextEventArgs.cs
- HttpGetClientProtocol.cs
- Win32Native.cs
- UnknownWrapper.cs
- TextBoxBase.cs
- unsafeIndexingFilterStream.cs
- BinaryParser.cs
- AutomationProperties.cs
- EntityDataSourceViewSchema.cs
- EdmTypeAttribute.cs
- MD5CryptoServiceProvider.cs
- ImageBrush.cs
- FontNamesConverter.cs
- GradientBrush.cs
- LogicalExpr.cs
- WebPartMovingEventArgs.cs
- StreamResourceInfo.cs
- InputReportEventArgs.cs
- ModuleElement.cs
- GridViewCommandEventArgs.cs
- WebPartTransformerAttribute.cs
- BindingRestrictions.cs
- SqlInternalConnectionTds.cs
- EnumValidator.cs
- Invariant.cs
- EmbeddedMailObject.cs
- PointLight.cs
- HotSpotCollection.cs
- DataSourceProvider.cs
- DatePickerDateValidationErrorEventArgs.cs
- ClientSettingsProvider.cs
- Stack.cs
- ClientSponsor.cs
- CodeExporter.cs
- BamlTreeMap.cs
- MatchingStyle.cs
- DocumentXPathNavigator.cs
- WorkflowCreationContext.cs
- TextDecorations.cs
- VideoDrawing.cs
- XmlChildNodes.cs
- RadioButton.cs
- DropTarget.cs
- Margins.cs
- FontDriver.cs
- Ref.cs
- DocumentCollection.cs
- TypeInfo.cs
- AuthorizationContext.cs
- FocusChangedEventArgs.cs
- CapiNative.cs
- CopyEncoder.cs
- PipeStream.cs
- TemplateBaseAction.cs
- SqlGatherConsumedAliases.cs
- QilFactory.cs
- WebPartZone.cs
- GridViewRowEventArgs.cs
- SqlFacetAttribute.cs
- FilterQueryOptionExpression.cs
- Directory.cs
- DataObject.cs
- DataBindEngine.cs
- DataBoundControlHelper.cs
- InputLangChangeRequestEvent.cs
- RolePrincipal.cs
- COM2ColorConverter.cs
- DaylightTime.cs
- Validator.cs
- DbgUtil.cs
- TargetPerspective.cs
- HttpContextServiceHost.cs
- HttpHeaderCollection.cs
- PkcsMisc.cs
- unsafenativemethodsother.cs
- Relationship.cs