Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengintegrasikan Kod Perkhidmatan Terus ke dalam Aplikasi Konsol .NET?

Bagaimanakah Saya Boleh Mengintegrasikan Kod Perkhidmatan Terus ke dalam Aplikasi Konsol .NET?

Patricia Arquette
Lepaskan: 2024-12-31 12:30:10
asal
463 orang telah melayarinya

How Can I Integrate Service Code Directly into a .NET Console Application?

Mengintegrasikan Kod Perkhidmatan ke dalam Aplikasi .NET Console

Bagaimanakah anda boleh mengubah aplikasi konsol menjadi perkhidmatan Windows tanpa menambah projek berasingan?

Penyelesaian:

Anda boleh menyepadukan kod perkhidmatan dengan lancar ke dalam aplikasi konsol anda untuk membolehkannya berjalan sebagai aplikasi konsol dan perkhidmatan. Pertimbangkan teknik berikut:

using System.ServiceProcess;

public static class Program
{
    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();
        }
    }

    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
    }
}
Salin selepas log masuk

Penjelasan:

  • Sifat Environment.UserInteractive biasanya benar untuk apl konsol dan false untuk perkhidmatan.
  • Dengan menyemak sifat ini, kod menentukan sama ada untuk menjalankan aplikasi sebagai perkhidmatan atau sebagai apl konsol. Apabila tidak berjalan sebagai perkhidmatan, aplikasi akan memasuki mod konsol, membaca input dan memaparkan output.
  • Kod perkhidmatan berada dalam kelas Perkhidmatan bersarang yang mewarisi daripada ServiceBase.
  • OnStart dan OnStop kaedah ditindih untuk mengendalikan memulakan dan menghentikan perkhidmatan, masing-masing.
  • Dalam Utama, kaedah ServiceBase.Run digunakan untuk menjalankan perkhidmatan dalam urutan yang berbeza, memastikan program kekal responsif.
  • Sama ada berjalan sebagai apl konsol atau perkhidmatan, kaedah Mula dan Henti menyediakan kefungsian yang diperlukan untuk mengurus pelaksanaan aplikasi.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengintegrasikan Kod Perkhidmatan Terus ke dalam Aplikasi Konsol .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan