Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Util / SystemInfo.cs / 1305376 / SystemInfo.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Util { internal static class SystemInfo { static int _trueNumberOfProcessors; static internal int GetNumProcessCPUs() { if (_trueNumberOfProcessors == 0) { UnsafeNativeMethods.SYSTEM_INFO si; UnsafeNativeMethods.GetSystemInfo(out si); if (si.dwNumberOfProcessors == 1) { _trueNumberOfProcessors = 1; } else { // KERNEL32.DLL:GetCurrentProcess() always returns -1 under NT // Note: not really a handle (no need to CloseHandle()) IntPtr processHandle = UnsafeNativeMethods.INVALID_HANDLE_VALUE; IntPtr processAffinityMask; IntPtr systemAffinityMask; int returnCode = UnsafeNativeMethods.GetProcessAffinityMask( processHandle, out processAffinityMask, out systemAffinityMask); if (returnCode == 0) { _trueNumberOfProcessors = 1; } else { // if cpu affinity is set to a single processor busy waiting is a waste of time int numProcessors = 0; if (IntPtr.Size == 4) { uint mask = (uint) processAffinityMask; for (; mask != 0; mask >>= 1) { if ((mask & 1) == 1) { ++numProcessors; } } } else { ulong mask = (ulong) processAffinityMask; for (; mask != 0; mask >>= 1) { if ((mask & 1) == 1) { ++numProcessors; } } } _trueNumberOfProcessors = numProcessors; } } } Debug.Assert(_trueNumberOfProcessors > 0); return _trueNumberOfProcessors; } } } // 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
- Environment.cs
- Pipe.cs
- EventBuilder.cs
- AnnotationMap.cs
- CompressEmulationStream.cs
- SqlDataAdapter.cs
- RepeaterItemEventArgs.cs
- OleDbReferenceCollection.cs
- WebPartTransformerAttribute.cs
- AffineTransform3D.cs
- WeakReadOnlyCollection.cs
- XsltConvert.cs
- GridViewAutomationPeer.cs
- ConfigurationElement.cs
- VisualProxy.cs
- ContentElement.cs
- SoapAttributeOverrides.cs
- ListDictionaryInternal.cs
- SourceSwitch.cs
- ListView.cs
- BrowserCapabilitiesFactory.cs
- TextContainerChangeEventArgs.cs
- QilVisitor.cs
- _DomainName.cs
- WeakReadOnlyCollection.cs
- TableCell.cs
- PathParser.cs
- DataGridViewCellParsingEventArgs.cs
- CompilerGeneratedAttribute.cs
- TextDecorations.cs
- CodeGenerator.cs
- Expressions.cs
- FrameworkContentElementAutomationPeer.cs
- JsonXmlDataContract.cs
- DbProviderServices.cs
- Baml6Assembly.cs
- SingleSelectRootGridEntry.cs
- DataMisalignedException.cs
- MemberInitExpression.cs
- XmlRawWriterWrapper.cs
- HotSpotCollection.cs
- SymmetricCryptoHandle.cs
- WebServicesInteroperability.cs
- GatewayDefinition.cs
- MSAANativeProvider.cs
- StylusCaptureWithinProperty.cs
- Hashtable.cs
- LookupBindingPropertiesAttribute.cs
- ToggleButtonAutomationPeer.cs
- HashMembershipCondition.cs
- DragCompletedEventArgs.cs
- UserNameSecurityTokenAuthenticator.cs
- ApplicationDirectoryMembershipCondition.cs
- PrintingPermissionAttribute.cs
- DockProviderWrapper.cs
- Bookmark.cs
- PointAnimationBase.cs
- ColumnMapTranslator.cs
- UInt32Storage.cs
- CodeDomComponentSerializationService.cs
- MultiTouchSystemGestureLogic.cs
- DnsPermission.cs
- RegexCaptureCollection.cs
- Context.cs
- SQLDateTime.cs
- XmlQueryContext.cs
- ImpersonationContext.cs
- HMACSHA256.cs
- ProxySimple.cs
- MobileCapabilities.cs
- FrameworkContextData.cs
- MatrixIndependentAnimationStorage.cs
- InstanceNameConverter.cs
- Delegate.cs
- Soap12ProtocolImporter.cs
- PropertyConverter.cs
- CodeExpressionCollection.cs
- InternalTypeHelper.cs
- ResumeStoryboard.cs
- XmlILOptimizerVisitor.cs
- ModelVisual3D.cs
- SqlDataSourceView.cs
- SymbolTable.cs
- WebPartsPersonalizationAuthorization.cs
- _CacheStreams.cs
- Material.cs
- SplitContainer.cs
- StatusStrip.cs
- JoinTreeSlot.cs
- InstanceDataCollectionCollection.cs
- PointAnimationUsingPath.cs
- mediapermission.cs
- MultilineStringConverter.cs
- GCHandleCookieTable.cs
- SafePointer.cs
- GeneralTransform.cs
- UpdatePanelTrigger.cs
- FormattedText.cs
- DynamicPropertyReader.cs
- DeploymentSectionCache.cs