gpt4 book ai didi

c# - 为性能计数器分配一个浮点值

转载 作者:太空宇宙 更新时间:2023-11-03 23:38:58 25 4
gpt4 key购买 nike

我用 C# 创建了一个性能计数器。但是,在为其赋值时,我希望该值为 float 而不是 long,但我似乎无法弄清楚该怎么做。有人可以帮忙吗?

我使用的代码来自Counter of type RateOfCountsPerSecond32 always shows 0 :

public static void Test()
{
var ccdc = new CounterCreationDataCollection();

// Add the counter.
const string counterName = "RateOfCountsPerSecond64Sample";
var rateOfCounts64 = new CounterCreationData
{
CounterType = PerformanceCounterType.RateOfCountsPerSecond64,
CounterName = counterName
};
ccdc.Add(rateOfCounts64);

// Create the category.
const string categoryName = "RateOfCountsPerSecond64SampleCategory";
if (PerformanceCounterCategory.Exists(categoryName))
PerformanceCounterCategory.Delete(categoryName);
PerformanceCounterCategory.Create(categoryName, "",
PerformanceCounterCategoryType.SingleInstance, ccdc);

// create the counter
var pc = new PerformanceCounter(categoryName, counterName, false);
pc.RawValue = 1000; // <-- want to assign a float value here
}

有人可以帮忙吗?

最佳答案

嗯,你不能;数据类型为 long。只需按某个因子缩放它(这样你就可以保留几个小数位,作为低位数) - 例如 x1000 - 并对其进行四舍五入:

pc.RawValue = (long)(value * 1000);

但是,由于您使用的是 RateOfCountsPerSecond32 - 您应该记录总数,而不是比率。后端计算速率。

关于c# - 为性能计数器分配一个浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29790017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com