Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CompMod / System / Diagnostics / TraceEventCache.cs / 1305376 / TraceEventCache.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
using System;
using System.Threading;
using System.Security.Permissions;
using System.Text;
using System.Collections;
using System.Globalization;
using System.Runtime.Versioning;
namespace System.Diagnostics {
public class TraceEventCache {
private static int processId;
private static string processName;
private long timeStamp = -1;
private DateTime dateTime = DateTime.MinValue;
private string stackTrace = null;
internal Guid ActivityId {
get { return Trace.CorrelationManager.ActivityId; }
}
public string Callstack {
get {
if (stackTrace == null)
stackTrace = Environment.StackTrace;
else
new EnvironmentPermission(PermissionState.Unrestricted).Demand();
return stackTrace;
}
}
public Stack LogicalOperationStack {
get {
return Trace.CorrelationManager.LogicalOperationStack;
}
}
public DateTime DateTime {
get {
if (dateTime == DateTime.MinValue)
dateTime = DateTime.UtcNow;
return dateTime;
}
}
public int ProcessId {
[ResourceExposure(ResourceScope.Process)] // Returns the current process's pid
[ResourceConsumption(ResourceScope.Process)]
get {
return GetProcessId();
}
}
public string ThreadId {
get {
return GetThreadId().ToString(CultureInfo.InvariantCulture);
}
}
public long Timestamp {
get {
if (timeStamp == -1)
timeStamp = Stopwatch.GetTimestamp();
return timeStamp ;
}
}
[ResourceExposure(ResourceScope.None)]
[ResourceConsumption(ResourceScope.Machine, ResourceScope.Machine)]
private static void InitProcessInfo() {
// Demand unmanaged code permission
new SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Demand();
if (processName == null) {
Process p = Process.GetCurrentProcess();
try {
processId = p.Id;
processName = p.ProcessName;
}
finally {
p.Dispose();
}
}
}
[ResourceExposure(ResourceScope.Process)]
internal static int GetProcessId() {
InitProcessInfo();
return processId;
}
internal static string GetProcessName() {
InitProcessInfo();
return processName;
}
internal static int GetThreadId() {
return Thread.CurrentThread.ManagedThreadId;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SchemaImporterExtension.cs
- PropertyCollection.cs
- EDesignUtil.cs
- MsmqOutputMessage.cs
- EraserBehavior.cs
- WebPartConnectionsEventArgs.cs
- DataGridViewComponentPropertyGridSite.cs
- TableLayoutPanelCellPosition.cs
- StreamGeometry.cs
- DBSqlParserColumnCollection.cs
- ListSortDescriptionCollection.cs
- Misc.cs
- ApplyTemplatesAction.cs
- UpdateException.cs
- SimpleBitVector32.cs
- OneOf.cs
- DependencyObjectPropertyDescriptor.cs
- Variable.cs
- MemoryPressure.cs
- FillRuleValidation.cs
- SecurityPolicySection.cs
- documentsequencetextpointer.cs
- EventSinkActivityDesigner.cs
- MSAANativeProvider.cs
- ControlAdapter.cs
- EventProviderWriter.cs
- TextPattern.cs
- MetaColumn.cs
- IRCollection.cs
- Msmq4PoisonHandler.cs
- FormatterConverter.cs
- DetectRunnableInstancesTask.cs
- ColumnMapProcessor.cs
- Number.cs
- NativeMethods.cs
- RemoteX509Token.cs
- InternalDispatchObject.cs
- SettingsProviderCollection.cs
- WebZone.cs
- SubMenuStyleCollection.cs
- IntranetCredentialPolicy.cs
- PingOptions.cs
- SyndicationSerializer.cs
- CompareValidator.cs
- XmlSchemaAnnotation.cs
- HyperLinkDataBindingHandler.cs
- SecurityHeaderLayout.cs
- IBuiltInEvidence.cs
- MatrixAnimationUsingPath.cs
- SafeHandles.cs
- TraceEventCache.cs
- ListViewGroupConverter.cs
- ResourceManagerWrapper.cs
- FormatConvertedBitmap.cs
- __ComObject.cs
- UIPropertyMetadata.cs
- documentsequencetextpointer.cs
- DelegatingConfigHost.cs
- FaultFormatter.cs
- RootBrowserWindowAutomationPeer.cs
- GACIdentityPermission.cs
- Freezable.cs
- Latin1Encoding.cs
- PropertyFilterAttribute.cs
- IndicFontClient.cs
- SponsorHelper.cs
- Predicate.cs
- DelegateSerializationHolder.cs
- webproxy.cs
- Triplet.cs
- ObjectStorage.cs
- Form.cs
- FormViewPagerRow.cs
- _TLSstream.cs
- XmlAttributeCache.cs
- Vars.cs
- MetafileHeaderWmf.cs
- WorkflowDefinitionDispenser.cs
- ListView.cs
- ArgumentReference.cs
- Paragraph.cs
- RotateTransform3D.cs
- Process.cs
- HtmlMobileTextWriter.cs
- ComEventsHelper.cs
- SQLChars.cs
- HiddenFieldPageStatePersister.cs
- DataBindingCollection.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- AttributeCollection.cs
- WorkItem.cs
- SystemIcmpV6Statistics.cs
- SmiTypedGetterSetter.cs
- SQLDoubleStorage.cs
- Stacktrace.cs
- ListViewUpdateEventArgs.cs
- VisualTreeUtils.cs
- UnmanagedMarshal.cs
- LexicalChunk.cs
- CodeAttributeDeclarationCollection.cs