もくじ
やりたいこと
以前、.NET5でバックグラウンドプロセスを作ったが、もっと簡単かもしれない方法があったのでメモ。
手順
-
App.xaml.cs にある「App」クラスに、
OnStartup()
メソッドのオーバーライドを追加する。
(Appにカーソルを合わせて、ALT+Entを押し、出たメニューで「上書きの追加」を選択し、OnStartup()
を選択する) -
起動後5秒でアプリを終了するには、下記のように書く。
App.xaml.cs
using System.Threading.Tasks;
using System.Windows;
namespace WpfApp10
{
public partial class App : Application
{
protected override async void OnStartup(StartupEventArgs e)
{
await Task.Delay(5000);
this.Shutdown();
}
}
}
※App.xaml
でStartupUri="MainWindow.xaml"
を消してないと、上のコードでTask.Delayしている間にウインドウが出てしまうので、必ず削除しておくこと。
前回のやり方との差
前回のやり方は下記。
前回のやり方と今回のやり方で、特に動きに違いはないように見える。
どちらも、
- タスクマネージャーの
- 「プロセス」タブには出てこない
- 「詳細」タブには出てくる
同じ動きするのであれば、今回のやり方の方が、簡単かもしれない。