估计用 C# 完成一个程序所需的时间

Estimate the amount of time it takes to complete a programme in C#

我正在使用秒表,我想估计从开始到结束需要多长时间。

它看起来像一个非常简单的复合体。我实例化了秒表,启动它,然后停止它,然后通过编写一个方法 .elapsed 它应该为我提供从开始到停止所需的时间。

不幸的是,它总是为我提供 00:00:00。

我是否必须在我的 PC 上设置一些特定于我的文化的东西?

我也试过 .StartNew() 但没有用。

        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();

        string juniorDevOpsFolder = "JuniorDevOps";
        string targetPath = Directory.GetCurrentDirectory();
        int endIndex = targetPath.IndexOf(juniorDevOpsFolder);
        var juniorDevOpsPath = targetPath.Substring(0, endIndex + juniorDevOpsFolder.Length);
        string directory = "Files";
        string targetDirectory = Path.Combine(juniorDevOpsPath, directory);
        ProcessDirectory(targetDirectory);
        stopwatch.Stop();

        // Write hours, minutes and seconds.
        Console.WriteLine("Time elapsed: {0:hh\:mm\:ss}", stopwatch.Elapsed);

同样,输出是 00:00:00

这可能需要不到一秒钟的时间。尝试格式化毫秒。

也许这只是因为您的程序执行时间 少于 一秒,这就是为什么您得到零小时、零分钟和零秒的原因?尝试无格式输出或 ElapsesMilliseconds 属性

您的程序执行时间不到一秒,因此格式化 stopwatch.Elapsed 正在向控制台输出 00:00:00。尝试 stopwatch.ElapsedMilliseconds 而不是格式化 stopwatch.Elapsed.

类似

    Stopwatch stopwatch = new Stopwatch();
    stopwatch.Start();

    //Your business logic

    stopwatch.Stop();
    Console.WriteLine($"Elapsed milliseconds : {stopwatch.ElapsedMilliseconds}" );

那个代码呢:

var watch = new System.Diagnostics.Stopwatch();

        watch.Start();

        // do something what do you want

        watch.Stop();

        Console.WriteLine($"Execution Time: {watch.ElapsedMilliseconds} ms");