Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 秒表记录到小数点后4位_C#_Time_Stopwatch - Fatal编程技术网

C# 秒表记录到小数点后4位

C# 秒表记录到小数点后4位,c#,time,stopwatch,C#,Time,Stopwatch,我使用系统诊断秒表来计时我的功能运行所需的时间。当前输出为0,因为它处于1ms下。我怎样才能记录到一毫秒以下的小数点后4位?。我知道“滴答声”,但我不希望在所有计时中都将滴答声转换为毫秒 我目前正在使用以下代码: System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch(); watch.Start(); myFunction(); watch.Stop(); double elapsedTime = watch.

我使用系统诊断秒表来计时我的功能运行所需的时间。当前输出为
0
,因为它处于
1ms
下。我怎样才能记录到一毫秒以下的小数点后4位?。我知道“滴答声”,但我不希望在所有计时中都将滴答声转换为毫秒

我目前正在使用以下代码:

System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
watch.Start();
myFunction();
watch.Stop();
double elapsedTime = watch.ElapsedMilliseconds;   //How to get to 4 decimal places? 
Console.WriteLine("Time " + elapsedTime );

您应该使用
watch.appeased.totalmillizes
,而不是毫秒

Stopwatch watch = new Stopwatch();
watch.Start();
myFunction();
watch.Stop();
double elapsedTime = watch.Elapsed.TotalMilliseconds;
Console.WriteLine("Time " + elapsedTime);

输出

为了获得微秒而不是毫秒,您可以使用:

double elapsedMicroseconds = watch.ElapsedTicks / (TimeSpan.TicksPerMillisecond / 1000);
您可以使用属性

获取以整数表示的当前TimeSpan结构的值 和小数毫秒

System.Diagnostics.Stopwatch=新的System.Diagnostics.Stopwatch();
watch.Start();

对于(inti=0;i使用
String.Format
和do

string s = String.Format({0:0.4F}, elapsedTime);
这应该可以做到这一点。

来自:

[ElapsedMilliseconds]属性表示舍入到最接近的整毫秒值的已用时间。对于更高精度的测量,请使用已用或ElapsedTicks属性


如果您使用的是Visual Studio 2010或更高版本,我建议您应该坚持使用VS附带的性能分析工具。这些工具将为您提供有关特定函数和子函数占用CPU和内存的准确详细结果。

因为他说,他不想将所有时间的节拍转换为毫秒gs,也许可以提供一个扩展方法来实现这一点。这个答案解决了“我不希望在所有计时中都将滴答声转换为毫秒”的要求@MatthewWatson是的,在发送我的答案后,我注意到这一行,我现在正在考虑另一个解决方案。这是VS2010内置的还是某种插件?内置的。检查VS2010中的
分析
菜单。代码分析只能在Visual Studio 2010的高级版和终极版中找到。不幸的是,我有专业版。我更喜欢为什么不把我所有的计时都转换成毫秒?
string s = String.Format({0:0.4F}, elapsedTime);