0

ユーザーがプロセスを開始したときのアプリケーション、アプリケーションインスタンスを測定して、アプリケーションLoading Timeの読み込み中に何が起こっているのか、またはアプリケーションの読み込みがどれだけ完了したかをユーザーに通知するプログレスバーなどを表示できるようにする方法を考えています。

プログレスバーで現在の進行状況を表示したい場合は、コントロールのValueプロパティを増やすことができるように、現在のプロセスを数値で定義できると思います。ProgressBar

前もって感謝します。

心から。

編集 :

私が解決策として見つけたのは:

System.Diagnostics.Stopwatchを使用して時間を測定できます。フォームのコンストラクターの先頭からメソッドStartを呼び出します。

フォームが表示された後、通常はApplication.Idleイベントが発生します。したがって、このイベントのハンドラーでStopメソッドを呼び出すことができます。ただし、たとえばSystem.Diagnostics.Debug.WriteLineをsysinternals.comのツールDebugViewと一緒に使用して、このイベントが実際に発生することを確認する必要があります。

System.Diagnostics.StopWatchしたがって、次のように使用できます。

using System;
using System.Diagnostics;
using System.Threading;
class Program
{
    static void Main(string[] args)
    {
        Stopwatch stopWatch = new Stopwatch();
        stopWatch.Start();
        Thread.Sleep(10000);
        stopWatch.Stop();
        // Get the elapsed time as a TimeSpan value.
        TimeSpan ts = stopWatch.Elapsed;

        // Format and display the TimeSpan value.
        string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
            ts.Hours, ts.Minutes, ts.Seconds,
            ts.Milliseconds / 10);
        Console.WriteLine(elapsedTime, "RunTime");
    }
}

そして、アイドルイベントが発生すると、ロード時間を見つけてプログレスバーに表示できますが、プログレスバーにはロード時間の正確なパーセンテージが表示されないと思います。

4

5 に答える 5

5

プログレスバーが残り時間の真の指標になる可能性はほとんどありません。一般的なアプローチは、ロードが完了するまでに完了した「ステップ」の数を使用することです。

3つのメソッドを実行する必要があり、各メソッドにさらに2つのサブメソッドがあるとします。それは6になります。6ステップのプログレスバーを使用します。試行エラーに基づいている場合は、どの「ステップ」に時間がかかるかを判断し、より多くの「ステップ数」を割り当てます。

于 2009-10-22T00:15:36.450 に答える
1

場合によります。

アプリケーションの読み込みはどのようになっていますか?また、なぜ時間がかかるのですか?

1つのオプションは、プログラムの開始にかかる時間を追跡し、その期間を使用して将来のプログレスバーを設定することです。(これは実行時に実行し、マシンの速度によって異なるため、どこかに保存する必要があります)

より具体的な回答については、ロードしているものを教えてください。

于 2009-10-22T00:15:04.673 に答える
1

通常、この例のプログレス バーは、読み込み時間の関数ではなく、タスクの読み込みです。

アプリケーションが起動時に行う作業を確認し、各ステップにパーセンテージ値を割り当てる必要があります。値は任意である必要はありません。代わりに、自分のマシンでいくつかのメトリックを実行して、これらの各タスクに通常かかる時間を決定し、それを使用してパーセンテージを決定します。

于 2009-10-22T00:16:52.143 に答える
1

非常によく似た質問をしましたが、ProgressBar を使用する代わりに、ラベルを使用して負荷の割合を表示しています。これまで、ProgressBars は非常に信頼できませんでした。ここで私の投稿を見つけることができます:

C# - 4 秒以内に 1 ~ 100% の読み込みを表示

于 2009-10-22T00:17:21.923 に答える