Pelancaran Aplikasi Satu Contoh dengan Pemberitahuan Pengguna menggunakan Mutex
Artikel ini menunjukkan cara menggunakan mutex untuk menghalang berbilang kejadian aplikasi daripada berjalan serentak, dan yang penting, cara memberitahu pengguna jika tika sudah berjalan.
Pendekatan Mutex
Inti penyelesaian melibatkan penggunaan objek mutex (pengecualian bersama). Mutex bertindak sebagai kunci; hanya satu proses boleh memperoleh pemilikan pada satu masa. Percubaan untuk mencipta mutex yang sudah wujud akan gagal, membolehkan kami mengesan sama ada tika lain sedang dijalankan.
Peningkatan Kod untuk Pemberitahuan Pengguna
Coretan kod yang disediakan menggunakan Mutex.OpenExisting
untuk menyemak contoh sedang berjalan. Untuk menambah baik ini, kami menambah pemberitahuan pengguna:
<code class="language-csharp">static void Main(string[] args) { bool createdNew; Mutex m = new Mutex(true, AppDomain.CurrentDomain.FriendlyName, out createdNew); if (!createdNew) { // Notify the user that an instance is already running. MessageBox.Show("An instance of this application is already running.", "Application Already Running", MessageBoxButtons.OK, MessageBoxIcon.Information); return; // Exit the new instance. } else { // Continue application execution. } // ... rest of your application code ... m.Dispose(); // Release the mutex when the application closes. }</code>
Kod dipertingkat ini menggunakan parameter out createdNew
bagi pembina Mutex
. Jika createdNew
ialah false
, ini menunjukkan bahawa mutex sudah wujud, bermakna tika lain sedang berjalan. A MessageBox
memberitahu pengguna, dan kejadian baharu keluar dengan anggun menggunakan return
. Akhir sekali, panggilan m.Dispose()
memastikan pembersihan sumber yang betul. Kaedah ini menyediakan cara yang jelas dan mesra pengguna untuk mengendalikan berbilang pelancaran aplikasi.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghalang Berbilang Contoh Apl Saya dan Memaklumi Pengguna tentang Contoh Sedia Ada?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!