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
- ScaleTransform.cs
- ImageCodecInfo.cs
- WindowsGraphicsWrapper.cs
- mediaeventargs.cs
- wgx_exports.cs
- DataTableClearEvent.cs
- HttpProtocolReflector.cs
- ViewPort3D.cs
- MultiBinding.cs
- Int32Collection.cs
- Compress.cs
- DrawingVisualDrawingContext.cs
- WindowsAuthenticationModule.cs
- UnicastIPAddressInformationCollection.cs
- LicenseContext.cs
- StylusPointProperties.cs
- RangeValuePatternIdentifiers.cs
- Package.cs
- TextElementEditingBehaviorAttribute.cs
- UserControlCodeDomTreeGenerator.cs
- ReflectionUtil.cs
- XmlSerializerNamespaces.cs
- TextDataBindingHandler.cs
- TextEditorContextMenu.cs
- AssemblyHash.cs
- Trigger.cs
- DbDataAdapter.cs
- Attributes.cs
- ServiceEndpointAssociationProvider.cs
- RuleAction.cs
- __FastResourceComparer.cs
- JsonEncodingStreamWrapper.cs
- GraphicsContainer.cs
- ClassHandlersStore.cs
- ResourceDisplayNameAttribute.cs
- SEHException.cs
- GlobalizationAssembly.cs
- RsaKeyIdentifierClause.cs
- OdbcConnection.cs
- Point3DAnimationUsingKeyFrames.cs
- TemplateField.cs
- TextEditorDragDrop.cs
- PageRanges.cs
- CodeAttributeDeclaration.cs
- SqlServices.cs
- UrlEncodedParameterWriter.cs
- OleDbError.cs
- IpcClientChannel.cs
- TemplateBamlTreeBuilder.cs
- GridItemCollection.cs
- entitydatasourceentitysetnameconverter.cs
- ellipse.cs
- XmlSchemaElement.cs
- XmlNamedNodeMap.cs
- FlagsAttribute.cs
- AuthenticateEventArgs.cs
- StringArrayEditor.cs
- FileDialogCustomPlacesCollection.cs
- TextMetrics.cs
- Variant.cs
- xamlnodes.cs
- DefaultTraceListener.cs
- TextEffect.cs
- CollectionExtensions.cs
- TextLineResult.cs
- ApplicationSecurityManager.cs
- ExportOptions.cs
- TemplateXamlParser.cs
- ToolStripItemGlyph.cs
- StaticSiteMapProvider.cs
- StorageComplexPropertyMapping.cs
- GridViewDeleteEventArgs.cs
- MemoryFailPoint.cs
- ServiceReflector.cs
- XmlDataSourceNodeDescriptor.cs
- ResetableIterator.cs
- FileCodeGroup.cs
- ActivityInfo.cs
- BitmapImage.cs
- HashHelpers.cs
- GiveFeedbackEvent.cs
- WindowsIPAddress.cs
- CollectionView.cs
- JsonReader.cs
- RightsManagementEncryptionTransform.cs
- SHA512Managed.cs
- SqlDataSourceTableQuery.cs
- BrowserCapabilitiesFactory.cs
- LocalizeDesigner.cs
- SettingsBindableAttribute.cs
- HtmlElementErrorEventArgs.cs
- PrefixHandle.cs
- WebPartMenuStyle.cs
- NativeRightsManagementAPIsStructures.cs
- RegexTree.cs
- MultipartContentParser.cs
- Int32Animation.cs
- ConditionalDesigner.cs
- XPathNodePointer.cs
- FunctionUpdateCommand.cs