Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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; } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SecureUICommand.cs
- CommandHelpers.cs
- CachedResourceDictionaryExtension.cs
- PagedControl.cs
- ListControlConvertEventArgs.cs
- InArgument.cs
- CultureInfoConverter.cs
- CodeDefaultValueExpression.cs
- InfoCardBinaryReader.cs
- ThrowHelper.cs
- MediaTimeline.cs
- LineVisual.cs
- SecurityTokenValidationException.cs
- SplitterPanel.cs
- KeyGestureConverter.cs
- MetadataHelper.cs
- CounterCreationDataCollection.cs
- BaseCodePageEncoding.cs
- MappingSource.cs
- ReadOnlyNameValueCollection.cs
- AnnotationComponentChooser.cs
- SelectionItemPattern.cs
- ProgressBar.cs
- ImageClickEventArgs.cs
- EntitySet.cs
- StringFunctions.cs
- DynamicPropertyHolder.cs
- Clipboard.cs
- ImageFormat.cs
- securitycriticaldata.cs
- Rect3DConverter.cs
- AbstractDataSvcMapFileLoader.cs
- CodeDomLoader.cs
- CrossSiteScriptingValidation.cs
- DateTimePicker.cs
- QueryExpr.cs
- XmlSchemaInfo.cs
- ConfigXmlSignificantWhitespace.cs
- ClientTarget.cs
- SplineKeyFrames.cs
- DBDataPermissionAttribute.cs
- RuntimeResourceSet.cs
- DNS.cs
- ObjectStateManagerMetadata.cs
- TextBox.cs
- SimpleRecyclingCache.cs
- MailBnfHelper.cs
- Compiler.cs
- ContextStack.cs
- BitmapEffectGeneralTransform.cs
- ClientSession.cs
- SqlDataSourceStatusEventArgs.cs
- Stack.cs
- SqlFormatter.cs
- CodeTypeReferenceCollection.cs
- AnnotationService.cs
- JoinGraph.cs
- RegularExpressionValidator.cs
- HierarchicalDataSourceDesigner.cs
- PerformanceCounterManager.cs
- SqlConnectionString.cs
- DatatypeImplementation.cs
- DesignerProperties.cs
- updateconfighost.cs
- XmlElementList.cs
- APCustomTypeDescriptor.cs
- ErrorTableItemStyle.cs
- SubstitutionList.cs
- ThreadStaticAttribute.cs
- Thickness.cs
- DataBindingCollection.cs
- ContextMenuAutomationPeer.cs
- CultureSpecificStringDictionary.cs
- OuterGlowBitmapEffect.cs
- WindowsRegion.cs
- PreviewPageInfo.cs
- PropertyKey.cs
- PackageDocument.cs
- GridViewUpdateEventArgs.cs
- OpenTypeLayout.cs
- PhysicalFontFamily.cs
- PageParserFilter.cs
- IgnoreFileBuildProvider.cs
- FormsAuthenticationUserCollection.cs
- PartialArray.cs
- TextDocumentView.cs
- ListView.cs
- BitmapEffectCollection.cs
- AnnotationResourceCollection.cs
- PrinterUnitConvert.cs
- DateTimeFormat.cs
- AppDomainManager.cs
- ListViewDeletedEventArgs.cs
- ProfileParameter.cs
- IndexedSelectQueryOperator.cs
- TextEditorCopyPaste.cs
- PhonemeEventArgs.cs
- SecurityUtils.cs
- cryptoapiTransform.cs
- LineSegment.cs