2

スレッドの処理は初めてです。

スレッド化のコンテキストでのSystem.DiagnosticsとSystem.Timersの役割は何ですか?両方とも互いに代替的ですか、それともいくつかのユニークなタスクを実行するために実装されていますか?

4

4 に答える 4

11

StopWatchは、時間間隔を測定するためのものです。タイマーは、将来のある時点で実行するメソッドをスケジュールするためのものです。それらは完全に異なります。

于 2009-10-09T09:10:55.620 に答える
3

System.Diagnostics名前空間には、システム プロセス、イベント ログ、およびパフォーマンス カウンターとやり取りできるクラスが用意されています。

System.Timers名前空間は、指定した間隔でイベントを発生させることができる Timer コンポーネントを提供します。

于 2009-10-09T09:13:38.727 に答える
1

System.Timersに注意してください。

.Netには基本的に3つのタイマーがあります

System.Timers.Timer
System.Threading.Timer
System.Windows.Forms.Timer

.Netで利用可能な3つのタイマー

注意すべき重要なことは、収集の問題です。

スレッドが特定の時点以降にオブジェクトを参照しない場合、そのオブジェクトはガベージコレクションされる可能性があります。これは、実際にはIDisposableパターンの主な理由の1つです。これは、disposeを呼び出すと、少なくともdispose()呼び出しが終了するまでオブジェクトを存続させることができるためです。これはあなたが言うときに呼び出されるメソッドです

using(var myobj = new System.Threading.Timers()) 
{
    //run program here 
} //Timer can be collected from now.
于 2009-10-11T10:36:06.777 に答える
0

別のオプションとして、アプリケーションでBackgroundWorkerクラスを使用しており、良好な結果が得られています。

于 2009-10-11T10:47:02.480 に答える