スレッドの処理は初めてです。
スレッド化のコンテキストでのSystem.DiagnosticsとSystem.Timersの役割は何ですか?両方とも互いに代替的ですか、それともいくつかのユニークなタスクを実行するために実装されていますか?
スレッドの処理は初めてです。
スレッド化のコンテキストでのSystem.DiagnosticsとSystem.Timersの役割は何ですか?両方とも互いに代替的ですか、それともいくつかのユニークなタスクを実行するために実装されていますか?
StopWatchは、時間間隔を測定するためのものです。タイマーは、将来のある時点で実行するメソッドをスケジュールするためのものです。それらは完全に異なります。
System.Diagnostics名前空間には、システム プロセス、イベント ログ、およびパフォーマンス カウンターとやり取りできるクラスが用意されています。
System.Timers名前空間は、指定した間隔でイベントを発生させることができる Timer コンポーネントを提供します。
System.Timersに注意してください。
.Netには基本的に3つのタイマーがあります
System.Timers.Timer
System.Threading.Timer
System.Windows.Forms.Timer
注意すべき重要なことは、収集の問題です。
スレッドが特定の時点以降にオブジェクトを参照しない場合、そのオブジェクトはガベージコレクションされる可能性があります。これは、実際にはIDisposableパターンの主な理由の1つです。これは、disposeを呼び出すと、少なくともdispose()呼び出しが終了するまでオブジェクトを存続させることができるためです。これはあなたが言うときに呼び出されるメソッドです
using(var myobj = new System.Threading.Timers())
{
//run program here
} //Timer can be collected from now.
別のオプションとして、アプリケーションでBackgroundWorkerクラスを使用しており、良好な結果が得られています。