別のプロジェクトを作成せずに、コンソール アプリケーションを Windows サービスとして実行するにはどうすればよいですか?
コンソール アプリケーションの Windows サービスへの変換
多くの開発者は、コンソール アプリケーションを Windows サービスとして実行する必要性に直面しています。 Visual Studio 2010 ではサービスを作成するための別個のプロジェクト テンプレートが提供されていますが、コードを単一のコンソール アプリケーション プロジェクト内に保持したい場合もあります。
コード スニペット ソリューション
次のとおりです。コード スニペットは、別のサービス プロジェクトを追加せずに、コンソール アプリケーションを Windows サービスに変換する簡単なアプローチを提供します。
using System.ServiceProcess; public static class Program { #region Nested classes to support running as service public const string ServiceName = "MyService"; public class Service : ServiceBase { public Service() { ServiceName = Program.ServiceName; } protected override void OnStart(string[] args) { Program.Start(args); } protected override void OnStop() { Program.Stop(); } } #endregion static void Main(string[] args) { if (!Environment.UserInteractive) // running as service using (var service = new Service()) ServiceBase.Run(service); else { // running as console app Start(args); Console.WriteLine("Press any key to stop..."); Console.ReadKey(true); Stop(); } } private static void Start(string[] args) { // onstart code here } private static void Stop() { // onstop code here } }
Inこのスニペットでは、Environment.UserInteractive プロパティによって、アプリケーションがサービスとして実行されるかコンソール アプリとして実行されるかが決まります。 false の場合、コードはサービスとして実行されます。 true の場合、コードはコンソール アプリとして実行されます。
実装の詳細
ネストされた Service クラスは ServiceBase から派生し、基本的なサービス機能を提供します。 Main() メソッドはアプリケーションのエントリ ポイントを処理し、アプリケーションをサービスとして実行するかコンソール アプリとして実行するかを決定します。 Start() メソッドと Stop() メソッドは、各モードでアプリケーションを開始および停止するために必要なロジックを提供します。
カスタマイズ
Start() メソッドと Stop() メソッドはカスタマイズできます。 Stop() メソッドを使用して、アプリケーションの起動または停止時に特定のタスクを実行します。さらに、ServiceName 定数を調整してサービス名を指定できます。
このアプローチを使用すると、コンソール アプリケーションまたは Windows サービスとして実行できる単一のプロジェクトを維持でき、柔軟性と利便性が提供されます。
以上が別のプロジェクトを作成せずに、コンソール アプリケーションを Windows サービスとして実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











C言語関数によって返される値の種類は何ですか?返品値を決定するものは何ですか?

STL(ソート、検索、変換など)のアルゴリズムを効率的に使用するにはどうすればよいですか?
