問題タブ [system.timers.timer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - イベント "myTimer_Elapsed" がデバイスのラベルを更新しないのはなぜですか?
これが尋ねられた場合は申し訳ありません。この質問に対する具体的な答えを見つけることができず、立ち往生しています。私は今タイマーについて学んでいます。私は VBA プログラマーで、C# に手を出しています。
現在、クロスプラットフォーム アプリを作成しようとしていますが、myTimer.Elapsed イベントでラベルを更新する際に問題が発生しています。
goalkicker.com の C# Notes for Professionals のタイマーの章を読み、カウントダウン タイマーを複製しようとしました。Timer.Elapsed Event の Microsoft API も読みました。どちらも、どこが間違っているかについて明確な答えをくれませんでした。Google もあまり親切ではありません。私のクエリが間違っている可能性があります。
タイマーを停止して、メソッドの実行を許可し、Elapsed メソッド内で直接ラベルに書き込み、別のメソッドでラベルを更新しようとしました (コードに示されているように)。
ブレークポイントが期待どおりにヒットしているため、タイマー イベントが発生しています。timeLeft 変数は、イミディエイト ウィンドウで確認されたように調整されています。更新されていないのはラベルだけです。
c# - 2 つ以上のタスクを並行して実行している間、変数値を保持する
私はタイマーを使用しており、問題を解決するための最初のステップとしてスレッドを実装しました。30 秒ごとに参照を送信する必要があり、この参照はボタンがクリックされるたびに作成されます。だから私は次のコードを持っています:
以下は MyReference クラスです。
問題を強調するために編集します。
問題は、最新の値のみを送信しsomeReference
、以前の値を無視することです。someReference の最新の値に置き換えずに、30 秒後に各値を送信するにはどうすればよいですか?
c# - System.Timers.Timer Elapsed イベントを正しくオーバーライドする方法
System.Timers.Timer クラスのデフォルトの Elapsed イベントをオーバーライドして、必要に応じてすべてのイベント リスナーを簡単に削除できるようにしたいと考えています。この質問からのホルヘの答えを使用して、次のことを思いつきました
これが実行されているサービスを実行すると、追跡してプライベート Elapsed メンバーが割り当てられていることがわかります。ただし、イベント ハンドラーが実際に実行されるのを確認できません。これを正しく設定しましたか?
c# - 参照が保存されていない場合、SystemTimers.Timer はいつガベージと見なされますか?
System.Timers.Timer がいつガベージと見なされ、参照を保存していない場合にガベージ コレクターによって収集されるかを知りたいのですが、有効になっています。
しかし、Timer がゴミと見なされるのはどの時点でしょうか?
次のコードを検討してください。
このコード ブロックは、コードが更新をトリガーするときに 2 秒ごとに実行され、フォームの下隅に星の文字が追加され、接続が正常であることを示します。参照なしでタイマーを作成します。このタイマーは、1 秒後に星を再び削除し、それ自体を停止して破棄します。