Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / xsp / System / Web / Util / SystemInfo.cs / 1 / 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. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- QuaternionValueSerializer.cs
- XmlSchemaNotation.cs
- DbSetClause.cs
- XmlSchemaSimpleType.cs
- GregorianCalendar.cs
- AccessDataSource.cs
- CalloutQueueItem.cs
- AvTraceFormat.cs
- XmlText.cs
- TabItem.cs
- OleStrCAMarshaler.cs
- CompilerWrapper.cs
- HtmlInputCheckBox.cs
- Config.cs
- XmlMapping.cs
- ResXResourceReader.cs
- LinkArea.cs
- AddInToken.cs
- EventToken.cs
- SystemNetworkInterface.cs
- XsdValidatingReader.cs
- FixedSOMTable.cs
- NullReferenceException.cs
- ControlDesigner.cs
- OdbcPermission.cs
- DataObjectMethodAttribute.cs
- ComplexObject.cs
- SqlConnectionHelper.cs
- SmiGettersStream.cs
- StrongTypingException.cs
- EditorZone.cs
- DataGridViewCell.cs
- XmlImplementation.cs
- GraphicsPathIterator.cs
- HwndSource.cs
- DateTimeConverter2.cs
- SaveFileDialogDesigner.cs
- SendMailErrorEventArgs.cs
- StoreAnnotationsMap.cs
- HtmlInputPassword.cs
- ProxyGenerator.cs
- SectionInformation.cs
- _Win32.cs
- EntityCommandCompilationException.cs
- ToolStripPanelRenderEventArgs.cs
- UrlMappingsModule.cs
- SafeThemeHandle.cs
- DocumentGrid.cs
- AttributeConverter.cs
- HighContrastHelper.cs
- RemotingServices.cs
- SqlMethods.cs
- XmlAttributeCollection.cs
- FolderBrowserDialogDesigner.cs
- HttpAsyncResult.cs
- AppDomainFactory.cs
- DataGridViewCellMouseEventArgs.cs
- UIElementIsland.cs
- ScriptControl.cs
- HitTestWithGeometryDrawingContextWalker.cs
- SiteMembershipCondition.cs
- DataGridItem.cs
- GAC.cs
- XmlNamespaceManager.cs
- RtfControls.cs
- ScalarType.cs
- CompiledQueryCacheKey.cs
- SynchronizationHandlesCodeDomSerializer.cs
- TrackingMemoryStreamFactory.cs
- BinaryObjectReader.cs
- CodeCompiler.cs
- ContainerUIElement3D.cs
- DataGridPagerStyle.cs
- SqlMethodAttribute.cs
- ExpandSegmentCollection.cs
- DataGridViewCell.cs
- TypeLoadException.cs
- MenuAutoFormat.cs
- DrawingContextWalker.cs
- DbConnectionPoolGroup.cs
- ChannelPoolSettingsElement.cs
- CheckBoxFlatAdapter.cs
- WebResourceAttribute.cs
- OleDbParameterCollection.cs
- MarginsConverter.cs
- ContentFilePart.cs
- Point4D.cs
- IssuedTokenClientBehaviorsElement.cs
- SqlDelegatedTransaction.cs
- ObjectRef.cs
- Quaternion.cs
- CompilationRelaxations.cs
- DynamicDiscoveryDocument.cs
- CodeObject.cs
- ActivityXamlServices.cs
- WriteableOnDemandPackagePart.cs
- TypeBuilder.cs
- DataGridCellInfo.cs
- DataGridViewImageColumn.cs
- PageCatalogPart.cs