Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk membuat aplikasi WPF tunggal menggunakan mutexes?
c# WPF aplikasi contoh sebenar tunggal
Dalam C#, menggunakan WPF untuk membuat aplikasi contoh tunggal memerlukan teknologi yang dipanggil badan yang saling eksklusif. Pengecualian bersama bertujuan untuk memastikan hanya satu contoh aplikasi yang dapat dijalankan pada satu masa.
memahami teguran bersama
badan bersama bertindak sebagai pencari yang bertindak sebagai sumber permohonan. Apabila permohonan itu membuat teguran bersama, ia sebenarnya "mengunci" sumber -sumber ini untuk mengelakkan sebarang contoh aplikasi lain daripada mengaksesnya. Mekanisme ini memastikan hanya satu contoh aplikasi yang dapat dilakukan pada satu masa.
Buat satu contoh aplikasi WPF
Untuk membuat satu permohonan WPF contoh, sila ikuti langkah -langkah di bawah: <.> 1. Pembangunan badan eksklusif bersama:
Dalam kod aplikasi, mengisytiharkan objek Mutex statik.
Parameter ini menentukan bahawa badan eksklusif yang dimiliki pada mulanya dimiliki oleh aplikasi. Pengenal pasti ini memastikan tiada aplikasi lain boleh menggunakan badan bersama yang sama.
<.> 2. Semak pemilikan badan yang saling eksklusif: true
<code class="language-csharp">static Mutex mutex = new Mutex(true, "{8F6F0AC4-B9A1-45fd-A8CF-72F04E6BDE8F}");</code>untuk memeriksa sama ada ia mempunyai pengecualian bersama. Jika kaedah ini kembali , ini bermakna bahawa permohonan adalah contoh pertama yang dapat terus dilaksanakan. Jika dikembalikan, ini bermakna contoh lain sudah berjalan.
<.> 3. Beritahu contoh yang ada:
WaitOne()
Jika permohonan itu bukan contoh pertama, gunakan fungsi true
untuk menghantar mesej tersuai untuk memaklumkan percubaan permulaan contoh yang berlari dari contoh kedua. false
<code class="language-csharp">if (mutex.WaitOne(TimeSpan.Zero, true)) { // 应用程序的第一个实例 } else { // 第二个实例,通知第一个实例并退出 }</code><.> 4. Rawatan mesej tersuai:
Dalam keadaan berjalan, mesej tersuai diproses dengan menulis semula kaedah
tetingkap utama.
PostMessage()
<code class="language-csharp">NativeMethods.PostMessage( (IntPtr)NativeMethods.HWND_BROADCAST, NativeMethods.WM_SHOWME, IntPtr.Zero, IntPtr.Zero);</code>
Apabila contoh berjalan menerima mesej tersuai, anda boleh menggunakan kaedah untuk meletakkannya di meja depan.
WndProc
Dengan melaksanakan langkah -langkah ini, anda boleh membuat satu contoh aplikasi WPF untuk memastikan bahawa hanya satu contoh aplikasi yang aktif pada satu masa.
Atas ialah kandungan terperinci Bagaimana untuk membuat aplikasi WPF tunggal menggunakan mutexes?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!