C#10秒後にコントロールを無効にする最も簡単な方法は何ですか? タイマーまたはストップウォッチを使用していますか? 私は両方に慣れていないので、助けてくれてありがとう。
4 に答える
ストップウォッチがどのように役立つと期待するかわかりません。タイマーは確かに私にとって正しい答えのように思えます。いくつかの異なるタイマーを使用できることに注意してください。この場合System.Windows.Forms.Timer
は、おそらく WinForms アプリまたはSystem.Windows.Threading.DispatcherTimer
WPF に必要なタイマーです。
Windows フォームにはタイマーコントロールがあります (これはWPF のバージョンです)。
これらを使用する理由は、これらのタイマーが UI スレッドで起動するためです。したがって、System.Threading.Timerなどを使用した場合に実行する必要がある通常のマルチスレッド化されたif-InvokeRequried-Invokeダンスを実行する必要はありません。別のスレッドで実行されたメソッド。
(Jon から WPF リンクを盗みました)
@Jon Skeet の回答に関連して、System.Windows.Forms.Timer タイマー (フレームワークの 3 つのうち) が必要な理由は、UI スレッドでのタイマー コードの実行を処理するためです。他のタイマーはそれを行わないので、.CanInvoke と Invoke() を呼び出す必要があります (または、少し単純ですが、それでも面倒な SynchronizationContext を使用します)。
タイマーを使用します。それはあなたのニーズにより適しています。
編集:他の人が言ったように、System.Windows.Forms.Timer