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
- New.cs
- RtfNavigator.cs
- TableLayoutPanelResizeGlyph.cs
- VideoDrawing.cs
- EncoderNLS.cs
- RuntimeConfigLKG.cs
- FloaterParaClient.cs
- MessageSmuggler.cs
- FormatSettings.cs
- NoneExcludedImageIndexConverter.cs
- NegotiationTokenProvider.cs
- OdbcConnectionHandle.cs
- Point3DConverter.cs
- FtpWebResponse.cs
- Error.cs
- Light.cs
- WebBrowserSiteBase.cs
- EntityContainerEntitySetDefiningQuery.cs
- OrderedEnumerableRowCollection.cs
- BulletedListEventArgs.cs
- ErrorReporting.cs
- Opcode.cs
- SqlDataSourceCommandEventArgs.cs
- XmlILModule.cs
- StreamInfo.cs
- UdpDiscoveryEndpointProvider.cs
- Latin1Encoding.cs
- ToolStripStatusLabel.cs
- StaticContext.cs
- CheckPair.cs
- SettingsPropertyIsReadOnlyException.cs
- ResolveNameEventArgs.cs
- RecordManager.cs
- FilteredAttributeCollection.cs
- HashAlgorithm.cs
- VisualTarget.cs
- XPathNode.cs
- infer.cs
- CompositeActivityTypeDescriptorProvider.cs
- diagnosticsswitches.cs
- DataGridViewAdvancedBorderStyle.cs
- UnsafeNativeMethodsMilCoreApi.cs
- FormViewPagerRow.cs
- SqlConnectionPoolGroupProviderInfo.cs
- WaitForChangedResult.cs
- SoapSchemaExporter.cs
- AsnEncodedData.cs
- CellTreeNode.cs
- RunWorkerCompletedEventArgs.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- ProcessHostFactoryHelper.cs
- MultilineStringConverter.cs
- SizeValueSerializer.cs
- CustomErrorCollection.cs
- ManipulationLogic.cs
- Point3DCollectionConverter.cs
- CheckPair.cs
- OAVariantLib.cs
- SiteMapNode.cs
- QueryOperationResponseOfT.cs
- PreviewControlDesigner.cs
- NamedPermissionSet.cs
- MediaElementAutomationPeer.cs
- SvcMapFileLoader.cs
- SafeCryptoKeyHandle.cs
- TemplateBuilder.cs
- Latin1Encoding.cs
- BadImageFormatException.cs
- StylusPointPropertyInfo.cs
- LineUtil.cs
- RankException.cs
- OletxResourceManager.cs
- SamlAuthorityBinding.cs
- JpegBitmapDecoder.cs
- TableCellCollection.cs
- SoapIncludeAttribute.cs
- SchemaImporter.cs
- OracleDataReader.cs
- SafeThreadHandle.cs
- HandlerWithFactory.cs
- RelationshipDetailsCollection.cs
- ComNativeDescriptor.cs
- FocusChangedEventArgs.cs
- DataGridParentRows.cs
- XmlAttributeAttribute.cs
- ClusterRegistryConfigurationProvider.cs
- ActivitySurrogate.cs
- ListControl.cs
- ItemChangedEventArgs.cs
- LinkedList.cs
- XamlBrushSerializer.cs
- DocumentSequence.cs
- ErrorHandlerFaultInfo.cs
- DataDesignUtil.cs
- XmlWriter.cs
- EmptyEnumerable.cs
- ViewValidator.cs
- WizardForm.cs
- DefaultValueAttribute.cs
- SqlNodeAnnotations.cs