[トピック内 3 記事 (1 - 3 表示)] << 0 >>
VS2019 Application.Currentがnullだったらそのまま処理Aをコール。 Application.Currentがnullでない場合、ディスパッチャから処理Aをコール。 このような処理をそのまま書くと以下のようになるのですが、 もっとすっきりとした書き方にはなりませんでしょうか。 ※処理Aは一回書くだけにしたい。 if (Application.Current == null) { 処理A; } else { Application.Current.Dispatcher.BeginInvoke(new Action(() => { 処理A; })); }
ローカル関数はどうでしょうか? private void Test() { int hoge = 5; if (Application.Current == null) { ProcA(); } else { Application.Current.Dispatcher.BeginInvoke(new Action(ProcA)); } void ProcA() { 処理A; Trace.WriteLine(hoge); // ローカル変数のキャプチャも可能 } }
> > private void Test() { > int hoge = 5; > if (Application.Current == null) { > ProcA(); > } else { > Application.Current.Dispatcher.BeginInvoke(new Action(ProcA)); > } > > void ProcA() { > 処理A; > Trace.WriteLine(hoge); // ローカル変数のキャプチャも可能 > } > } ご返信ありがとうございます。 たしかに処理Aは一箇所だけになりましたが、 ProcAは二箇所ですので、ここを一箇所にできればいいのですが・・・。
管理者用
- Child Tree -