Torna al Thread

[DllImport("Kernel32.dll")] public static extern void QueryPerformanceCounter(ref long ticks); private PerformanceCounter _AverageDuration; private PerformanceCounter _AverageDurationBase; private long tmr; private bool val = false; private void Form1_Load(object sender, EventArgs e) { bool performaceCounterCategoryExists = PerformanceCounterCategory.Exists("MyTestCategory"); //if (performaceCounterCategoryExists) //{ // PerformanceCounterCategory.Delete("MyTestCategory"); // this.Close(); //} if (!performaceCounterCategoryExists) { CounterCreationDataCollection counters = new CounterCreationDataCollection(); CounterCreationData avgDuration = new CounterCreationData(); avgDuration.CounterName = "average time per operation"; avgDuration.CounterHelp = "Average duration per operation execution"; avgDuration.CounterType = PerformanceCounterType.AverageTimer32; counters.Add(avgDuration); CounterCreationData avgDurationBase = new CounterCreationData(); avgDurationBase.CounterName = "average time per operation base"; avgDurationBase.CounterHelp = "Average duration per operation execution base"; avgDurationBase.CounterType = PerformanceCounterType.AverageBase; counters.Add(avgDurationBase); // create new category with the counters above PerformanceCounterCategory.Create("MyTestCategory", "Sample category for Codeproject", counters); } _AverageDuration = new PerformanceCounter(); _AverageDuration.CategoryName = "MyTestCategory"; _AverageDuration.CounterName = "average time per operation"; _AverageDuration.MachineName = "."; _AverageDuration.ReadOnly = false; _AverageDuration.RawValue = 0; _AverageDurationBase = new PerformanceCounter(); _AverageDurationBase.CategoryName = "MyTestCategory"; _AverageDurationBase.CounterName = "average time per operation base"; _AverageDurationBase.MachineName = "."; _AverageDurationBase.ReadOnly = false; _AverageDurationBase.RawValue = 0; timer1.Start(); } private void timer1_Tick(object sender, EventArgs e) { long startTime = 0; long endTime = 0; QueryPerformanceCounter(ref startTime); val = !val; checkBox1.Checked = val; checkBox2.Checked = val; checkBox3.Checked = val; checkBox4.Checked = val; checkBox5.Checked = val; //System.Threading.Thread.Sleep(500); QueryPerformanceCounter(ref endTime); tmr = endTime - startTime; _AverageDuration.IncrementBy(tmr); label1.Text = string.Format("{0:0.0000}", tmr); }
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5