System.Threading.Timer
オブジェクトを使用し、その期間を設定します。
// period of 1 second
var timer = new Timer(CallBack, null, 0, 1000);
...
今、タイマーの期間を取得したいのですが、どうすればよいですか?
これを行う方法はサポートされていません。次の 2 つのオプションがあります。
1) クラスを使用するのが最善System.Timers.Timer
です。より柔軟で、マルチスレッドで使用する場合に安全に使用できるからです。System.Windows.Forms.Timer
タイマー、System.Timers.Timer
およびと の比較について詳しく知りたい場合は、この件に関する MSDN の記事System.Threading.Timer
をお読みください。
2) リフレクションを使用して、期間値を保持するプライベート メンバーにアクセスします。これを行う方法に関する優れた記事がたくさんあり、ILSpyを使用して、どのフィールドを読む必要があるかを確認できます。(.NET 4.0 では timer.m_timer.m_timer.m_period です。他のバージョンでも同じかもしれません)
あなたはそうしない。つまりSystem.Threading.Timer
、期間 (または私が知る限り他のメンバー) の取得をサポートしていません。期間を大まかに決定する唯一の方法は、自分で時間を計ることです。
を使用することはできませんが、またはSystem.Threading.Timer
を使用すると使用できます。そこに確認できるプロパティがあります。このリンクをさらに参照して、この 2 つの実装の違いを確認できます。System.Timers.Timer
System.Windows.Forms.Timer
Timer.Interval
MSDNによると、あなたが求めるものを達成する方法はありません。