前提・実現したいこと
グローバルフックを監視し、一定時間入力が無いと離席中とみなすツールをWPFで作っています。
大まかな画面構成はこの様になっています。
App.xaml(ここでグローバルフック関係の処理をしています) > MainWindow.xaml > Setting.xaml
App.xaml.cs上でDispatcherTimerをセットアップするメソッドをOnStartupメソッドで実行しています。
実現したいタイマーの仕様は、
- グローバルフックでリセット
- Setting画面で保存したときにリセット
- Setting画面でタイマーの判定時間を変更出来る(即反映される)
としたいのですが、2.と3.について、Setting.xaml.csから今動かしているタイマーに介入する方法が分かりません。
これを実現するにはタイマーのそもそもの作り方から変えないといけないと思うのですが、どのようにすれば実現出来るのか糸口が掴めていないため、質問させて頂きました。
発生している問題・エラーメッセージ
DispatherTimerをクラス間で共有・変更する方法が知りたいです。
該当のソースコード
C#
1 public partial class App : System.Windows.Application 2 { 3 public System.Windows.Threading.DispatcherTimer judgeTimer; 4 5 //色々な処理 6 SetupJadgeTimer(); 7 win.show(); //MainWindowの立ち上げ 8 9 //GlobalHookのメソッド内でこのようにリセットを行う 10 // 11 //judgeTimer.Stop(); 12 //judgeTimer.Start(); 13 14 public void SetupJudgeTimer() 15 { 16 judgeTimer = new System.Windows.Threading.DispatcherTimer 17 { 18 Interval = TimeSpan.FromMinutes(judgeTime), 19 }; 20 judgeTimer.Tick += (s, e) => 21 { 22 //一定時間経過後の処理 23 }; 24 judgeTimer.Start(); 25 } 26 }
試したこと
Setting.xaml.csの設定保存メソッド内で App.judgeTimer.Stop などとしたがオブジェクト参照できない
補足情報(FW/ツールのバージョンなど)
VisuaiStudio2017
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/28 09:28
2019/06/28 09:50