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
- SafeWaitHandle.cs
- ControlUtil.cs
- InvalidFilterCriteriaException.cs
- HostProtectionException.cs
- EntryWrittenEventArgs.cs
- XslTransform.cs
- HtmlContainerControl.cs
- SoapIncludeAttribute.cs
- SessionEndedEventArgs.cs
- StylusPointProperty.cs
- FixedDocument.cs
- NamespaceInfo.cs
- SqlDataSourceAdvancedOptionsForm.cs
- RectAnimation.cs
- CustomAttributeFormatException.cs
- TdsParser.cs
- XmlDataDocument.cs
- PassportAuthentication.cs
- DynamicObject.cs
- MonthCalendar.cs
- StorageFunctionMapping.cs
- MemberJoinTreeNode.cs
- SqlMethodAttribute.cs
- Vector3D.cs
- COM2AboutBoxPropertyDescriptor.cs
- AuthenticatedStream.cs
- Deserializer.cs
- EntityDesignerUtils.cs
- DrawingContextWalker.cs
- dbenumerator.cs
- StylusCollection.cs
- ThreadStateException.cs
- HyperLink.cs
- SynchronizationLockException.cs
- ProfileInfo.cs
- _TLSstream.cs
- TextLineBreak.cs
- ObjectDataProvider.cs
- ToolbarAUtomationPeer.cs
- Base64Stream.cs
- LinqDataSourceSelectEventArgs.cs
- ToolStripPanelRenderEventArgs.cs
- ContextMarshalException.cs
- HttpProfileBase.cs
- HttpProtocolReflector.cs
- Separator.cs
- KeyedCollection.cs
- XmlSchemas.cs
- TraceRecord.cs
- CompiledXpathExpr.cs
- ProxyWebPart.cs
- PowerStatus.cs
- EdgeProfileValidation.cs
- AncestorChangedEventArgs.cs
- SchemaCollectionCompiler.cs
- EntityContainer.cs
- BrowserCapabilitiesFactoryBase.cs
- ApplicationProxyInternal.cs
- SignatureToken.cs
- PropertyPathWorker.cs
- TypefaceMap.cs
- ObjectDataSource.cs
- AdPostCacheSubstitution.cs
- HealthMonitoringSectionHelper.cs
- FrameSecurityDescriptor.cs
- FixedSOMLineCollection.cs
- UnsafeNativeMethodsMilCoreApi.cs
- TextServicesContext.cs
- UserNameSecurityTokenProvider.cs
- HtmlElement.cs
- NoneExcludedImageIndexConverter.cs
- ResolveMatches11.cs
- TextEditorParagraphs.cs
- SqlDataSourceConfigureSortForm.cs
- EmbeddedMailObjectCollectionEditor.cs
- NamespaceInfo.cs
- DummyDataSource.cs
- CodeStatement.cs
- EvidenceBase.cs
- WindowsScrollBarBits.cs
- DBParameter.cs
- RequestContext.cs
- SchemaAttDef.cs
- XmlHierarchicalDataSourceView.cs
- ImageClickEventArgs.cs
- GenericXmlSecurityToken.cs
- RadioButton.cs
- SelectionWordBreaker.cs
- Array.cs
- TemplateLookupAction.cs
- SafeCertificateContext.cs
- X509Certificate.cs
- SystemWebSectionGroup.cs
- HashCryptoHandle.cs
- WeakReference.cs
- ExceptionHandlerDesigner.cs
- _DomainName.cs
- ColorMap.cs
- Validator.cs
- precedingsibling.cs