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
- XmlEncoding.cs
- Int32CollectionConverter.cs
- SqlDataSourceEnumerator.cs
- EpmContentDeSerializer.cs
- ReflectTypeDescriptionProvider.cs
- GeneratedView.cs
- InstanceLockException.cs
- XmlDataProvider.cs
- HtmlTitle.cs
- AppDomainShutdownMonitor.cs
- SemanticKeyElement.cs
- BinaryObjectWriter.cs
- KeyBinding.cs
- HtmlAnchor.cs
- _BaseOverlappedAsyncResult.cs
- XmlSchemaIdentityConstraint.cs
- TraceSource.cs
- XmlAggregates.cs
- QfeChecker.cs
- CopyNamespacesAction.cs
- DummyDataSource.cs
- DrawingState.cs
- SqlDataSourceQueryEditorForm.cs
- WpfXamlLoader.cs
- ChannelSinkStacks.cs
- log.cs
- PrinterUnitConvert.cs
- SqlClientMetaDataCollectionNames.cs
- BitmapData.cs
- KeyConverter.cs
- CustomPopupPlacement.cs
- ConfigurationSchemaErrors.cs
- Certificate.cs
- SqlCommand.cs
- ModuleBuilderData.cs
- ComponentManagerBroker.cs
- HashCodeCombiner.cs
- SynchronizedPool.cs
- LinearKeyFrames.cs
- SqlMultiplexer.cs
- Matrix.cs
- MonthCalendar.cs
- UInt32Converter.cs
- Point3DCollection.cs
- HTMLTextWriter.cs
- GenericAuthenticationEventArgs.cs
- SearchForVirtualItemEventArgs.cs
- InputScopeNameConverter.cs
- MetadataItem.cs
- RSACryptoServiceProvider.cs
- AvTraceDetails.cs
- StateMachine.cs
- LocalClientSecuritySettingsElement.cs
- ProcessInfo.cs
- EdmRelationshipRoleAttribute.cs
- Header.cs
- TypeBuilderInstantiation.cs
- BindableAttribute.cs
- Merger.cs
- AutomationElementCollection.cs
- TempFiles.cs
- X509Extension.cs
- TemplateKeyConverter.cs
- CrossContextChannel.cs
- complextypematerializer.cs
- DoubleCollectionValueSerializer.cs
- MarkedHighlightComponent.cs
- NullableLongMinMaxAggregationOperator.cs
- CompilationUtil.cs
- ISSmlParser.cs
- RuleCache.cs
- FigureHelper.cs
- ListBindableAttribute.cs
- AssemblyBuilder.cs
- XsltContext.cs
- PassportPrincipal.cs
- SourceInterpreter.cs
- PeerInvitationResponse.cs
- ChannelTokenTypeConverter.cs
- RuntimeArgumentHandle.cs
- AppearanceEditorPart.cs
- StylusSystemGestureEventArgs.cs
- TdsParserHelperClasses.cs
- GregorianCalendarHelper.cs
- GraphicsPathIterator.cs
- UIElementIsland.cs
- ContextMarshalException.cs
- ButtonBase.cs
- MetadataItem_Static.cs
- Table.cs
- ListComponentEditor.cs
- MenuItem.cs
- Sql8ConformanceChecker.cs
- PersistChildrenAttribute.cs
- BinaryFormatterSinks.cs
- XmlDataSourceNodeDescriptor.cs
- WithStatement.cs
- TailCallAnalyzer.cs
- ServiceKnownTypeAttribute.cs
- MasterPageParser.cs