知識マップ: .NET Generic HostとBackgroundServiceをデスクトップアプリで使う理由

記事「.NET Generic HostとBackgroundServiceをデスクトップアプリで使う理由」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

この記事は、WPFやWinFormsのデスクトップアプリで.NETのGeneric HostとBackgroundServiceを使う理由を整理したものです。Generic Hostは依存性注入やログ、停止処理をまとめて管理する起動の土台であり、BackgroundServiceはHosted Serviceの書きやすい実装として、常駐ループをTask.Runの投げっぱなしではなく管理された寿命に載せます。PeriodicTimerやChannel<T>を使う定期処理・順番付き処理はCancellationTokenを通じてStopAsyncまで停止合図が届き、graceful shutdownの待機上限はHostOptions.ShutdownTimeoutで構成します。致命的エラーで全体を止めたいときはIHostApplicationLifetimeを使うのが正規ルートであり、Environment.Exitで強制終了するとその経路自体が切られてしまいます。

Generic HostとBackgroundServiceの知識マップデスクトップアプリがGeneric Hostを起動の土台にし、BackgroundServiceがHosted Serviceとして常駐処理をCancellationTokenとShutdownTimeoutで管理されたgraceful shutdownに載せ、Environment.Exitがその経路と両立しないことを示す図。実装を担う利用する利用する利用する利用する利用する利用する利用する利用する前提とするで構成できる両立しない推奨される対応利用する用いるのは非推奨前提とする前提とするGeneric HostBackgroundServiceHosted Service (IHostedService)依存性注入(DI)WPFWindows FormsPeriodicTimerCancellationToken(.NET)Channelgraceful shutdownHostOptions.ShutdownTimeoutEnvironment.ExitIHostApplicationLifetimeIHostedLifecycleServiceTask.Run.NET(Core以降)

概念間の関係(全17件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

Generic Host
構成・DI・ロギングをまとめて面倒を見る.NETの土台。Host.CreateApplicationBuilderを使うと既定の構成プロバイダーの階層が組み立てられる。
BackgroundService
IHostedServiceの書きやすい実装補助となる抽象クラスで、長く走る本体をExecuteAsyncに書ける。
WPF
XAMLでUIを宣言的に記述する、Windows専用のデスクトップUIフレームワーク。ベクターベースの描画とデータバインディングを特徴とする。
Windows Forms
デスクトップGUIアプリケーションを構築するための.NET/.NET FrameworkのUIフレームワーク。
graceful shutdown
強制終了ではなく、止める合図を出して進行中の処理をなるべく整えてから終了させる終了方式。
Environment.Exit
指定した終了コードでプロセスを即座に終了させる.NETの静的メソッド。
IHostApplicationLifetime
アプリ全体の起動・停止イベントの通知と、正常終了への正規ルートであるStopApplicationメソッドを提供するインターフェース。
Task.Run
CPUを使う処理を.NETスレッドプールのワーカースレッドへ明示的にオフロードするためのAPI。I/OバウンドのTaskに使う必要はない。

機械可読データ

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。