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
- path.cs
- Authorization.cs
- EntitySqlQueryCacheEntry.cs
- IdleTimeoutMonitor.cs
- CodeObjectCreateExpression.cs
- DetailsViewInsertEventArgs.cs
- RegistryKey.cs
- GeneralTransform3DGroup.cs
- PathFigureCollection.cs
- EventDriven.cs
- CustomBindingElement.cs
- ZipIOExtraField.cs
- MergeExecutor.cs
- CachingHintValidation.cs
- ManipulationVelocities.cs
- PasswordTextContainer.cs
- PropVariant.cs
- ColorMatrix.cs
- SafeSerializationManager.cs
- DigitShape.cs
- COM2ColorConverter.cs
- OleDbMetaDataFactory.cs
- SQLGuid.cs
- WriteableBitmap.cs
- XslNumber.cs
- PromptBuilder.cs
- ProxyDataContractResolver.cs
- ASCIIEncoding.cs
- PropertyPushdownHelper.cs
- GenerateScriptTypeAttribute.cs
- OciEnlistContext.cs
- SettingsPropertyNotFoundException.cs
- BindValidationContext.cs
- MessageBox.cs
- CardSpaceSelector.cs
- DelegateSerializationHolder.cs
- WebBrowserProgressChangedEventHandler.cs
- AttributeCollection.cs
- InterleavedZipPartStream.cs
- AnnotationComponentManager.cs
- Listbox.cs
- ActionMismatchAddressingException.cs
- BinaryUtilClasses.cs
- IDispatchConstantAttribute.cs
- GregorianCalendarHelper.cs
- UInt16Converter.cs
- WebRequestModulesSection.cs
- UnicodeEncoding.cs
- ProcessInputEventArgs.cs
- DebuggerAttributes.cs
- NoResizeHandleGlyph.cs
- Size.cs
- Type.cs
- MobileUserControlDesigner.cs
- DmlSqlGenerator.cs
- ToolBarButtonDesigner.cs
- UnitySerializationHolder.cs
- AssociationType.cs
- ObjectItemCollection.cs
- PerfCounterSection.cs
- AssemblyAttributes.cs
- DataGridViewRowConverter.cs
- CellPartitioner.cs
- SQLGuidStorage.cs
- WindowsMenu.cs
- DefaultShape.cs
- ProtocolViolationException.cs
- SmiEventSink.cs
- TextRangeSerialization.cs
- TypedColumnHandler.cs
- BamlResourceSerializer.cs
- OdbcConnectionOpen.cs
- SmtpDigestAuthenticationModule.cs
- ObjectPropertyMapping.cs
- ManagementBaseObject.cs
- SqlFacetAttribute.cs
- SQLStringStorage.cs
- MetaColumn.cs
- PasswordDeriveBytes.cs
- Rule.cs
- AssemblyFilter.cs
- WasNotInstalledException.cs
- PackageDigitalSignatureManager.cs
- MarkupExtensionReturnTypeAttribute.cs
- XmlObjectSerializerWriteContextComplex.cs
- DataListItemEventArgs.cs
- BlockUIContainer.cs
- NamedPermissionSet.cs
- TimeBoundedCache.cs
- OdbcConnection.cs
- SiteMap.cs
- Certificate.cs
- TypeConverterValueSerializer.cs
- EncodingInfo.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- ErrorFormatter.cs
- Line.cs
- X509Utils.cs
- WindowsHyperlink.cs
- TreeNodeCollection.cs