EventWaitHandle.TryOpenExisting Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Membuka peristiwa sinkronisasi bernama tertentu, jika sudah ada, dan mengembalikan nilai yang menunjukkan apakah operasi berhasil.
Overload
TryOpenExisting(String, EventWaitHandle) |
Membuka peristiwa sinkronisasi bernama yang ditentukan, jika sudah ada, dan mengembalikan nilai yang menunjukkan apakah operasi berhasil. |
TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle) |
Membuka peristiwa sinkronisasi bernama yang ditentukan, jika sudah ada, dengan akses keamanan yang diinginkan, dan mengembalikan nilai yang menunjukkan apakah operasi berhasil. |
TryOpenExisting(String, EventWaitHandle)
- Sumber:
- EventWaitHandle.cs
- Sumber:
- EventWaitHandle.cs
- Sumber:
- EventWaitHandle.cs
Membuka peristiwa sinkronisasi bernama yang ditentukan, jika sudah ada, dan mengembalikan nilai yang menunjukkan apakah operasi berhasil.
public:
static bool TryOpenExisting(System::String ^ name, [Runtime::InteropServices::Out] System::Threading::EventWaitHandle ^ % result);
[System.Security.SecurityCritical]
public static bool TryOpenExisting (string name, out System.Threading.EventWaitHandle result);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static bool TryOpenExisting (string name, out System.Threading.EventWaitHandle? result);
public static bool TryOpenExisting (string name, out System.Threading.EventWaitHandle result);
public static bool TryOpenExisting (string name, out System.Threading.EventWaitHandle? result);
[<System.Security.SecurityCritical>]
static member TryOpenExisting : string * EventWaitHandle -> bool
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member TryOpenExisting : string * EventWaitHandle -> bool
static member TryOpenExisting : string * EventWaitHandle -> bool
Public Shared Function TryOpenExisting (name As String, ByRef result As EventWaitHandle) As Boolean
Parameter
- name
- String
Nama objek sinkronisasi yang akan dibuka dan dibagikan dengan proses lain. Namanya peka huruf besar/kecil. Karakter garis miring terbalik (\) dicadangkan dan hanya dapat digunakan untuk menentukan namespace. Untuk informasi selengkapnya tentang namespace layanan, lihat bagian keterangan. Mungkin ada pembatasan lebih lanjut pada nama tergantung pada sistem operasi. Misalnya, pada sistem operasi berbasis Unix, nama setelah mengecualikan namespace harus berupa nama file yang valid.
- result
- EventWaitHandle
Ketika metode ini kembali, berisi EventWaitHandle objek yang mewakili peristiwa sinkronisasi bernama jika panggilan berhasil, atau null
jika panggilan gagal. Parameter ini diperlakukan sebagai tidak diinisialisasi.
Mengembalikan
true
jika peristiwa sinkronisasi bernama berhasil dibuka; jika tidak, false
. Dalam beberapa kasus, false
dapat dikembalikan untuk nama yang tidak valid.
- Atribut
Pengecualian
name
adalah string kosong.
-atau-
Hanya .NET Framework: name
lebih panjang dari MAX_PATH (260 karakter).
name
adalah null
.
name
tidak valid. Ini bisa karena berbagai alasan, termasuk beberapa batasan yang mungkin ditempatkan oleh sistem operasi, seperti awalan yang tidak diketahui atau karakter yang tidak valid. Perhatikan bahwa nama dan awalan umum "Global\" dan "Local\" peka huruf besar/kecil. Untuk beberapa nama yang tidak valid, metode dapat kembali false
sebagai gantinya.
-atau-
Ada beberapa kesalahan lainnya. Properti HResult
dapat memberikan informasi lebih lanjut.
Terlalu name
panjang. Pembatasan panjang dapat bergantung pada sistem operasi atau konfigurasi.
Peristiwa bernama ada, tetapi pengguna tidak memiliki akses keamanan yang diinginkan.
Keterangan
name
mungkin diawali dengan Global\
atau Local\
untuk menentukan namespace.
Global
Ketika namespace ditentukan, objek sinkronisasi dapat dibagikan dengan proses apa pun pada sistem.
Local
Ketika namespace layanan ditentukan, yang juga merupakan default ketika tidak ada namespace yang ditentukan, objek sinkronisasi dapat dibagikan dengan proses dalam sesi yang sama. Di Windows, sesi adalah sesi masuk, dan layanan biasanya berjalan dalam sesi non-interaktif yang berbeda. Pada sistem operasi seperti Unix, setiap shell memiliki sesinya sendiri. Objek sinkronisasi sesi-lokal mungkin sesuai untuk disinkronkan antara proses dengan hubungan induk/anak di mana semuanya berjalan dalam sesi yang sama. Untuk informasi selengkapnya tentang nama objek sinkronisasi di Windows, lihat Nama Objek.
Jika objek sinkronisasi dari jenis yang diminta ada di namespace, objek sinkronisasi yang ada akan dibuka. Jika objek sinkronisasi tidak ada di namespace, atau objek sinkronisasi dari jenis yang berbeda ada di namespace layanan, false
dikembalikan.
Untuk membuat peristiwa sistem ketika belum ada, gunakan salah EventWaitHandle satu konstruktor yang memiliki name
parameter .
Jika Anda tidak yakin apakah peristiwa sinkronisasi bernama ada, gunakan metode ini kelebihan beban alih-alih OpenExisting(String) metode kelebihan beban, yang melemparkan pengecualian jika peristiwa sinkronisasi tidak ada.
Metode ini kelebihan beban setara dengan memanggil TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle) metode kelebihan beban dan menentukan EventWaitHandleRights.Synchronize dan EventWaitHandleRights.Modify hak, dikombinasikan dengan menggunakan operasi OR bitwise. Menentukan EventWaitHandleRights.Synchronize bendera memungkinkan utas untuk menunggu pada peristiwa sistem bernama, dan menentukan EventWaitHandleRights.Modify bendera memungkinkan utas untuk memanggil Set metode dan Reset .
Beberapa panggilan ke metode ini yang menggunakan nilai yang sama untuk name
tidak selalu mengembalikan objek yang sama EventWaitHandle , meskipun objek yang dikembalikan mewakili peristiwa sistem bernama yang sama.
Berlaku untuk
TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle)
Membuka peristiwa sinkronisasi bernama yang ditentukan, jika sudah ada, dengan akses keamanan yang diinginkan, dan mengembalikan nilai yang menunjukkan apakah operasi berhasil.
public:
static bool TryOpenExisting(System::String ^ name, System::Security::AccessControl::EventWaitHandleRights rights, [Runtime::InteropServices::Out] System::Threading::EventWaitHandle ^ % result);
[System.Security.SecurityCritical]
public static bool TryOpenExisting (string name, System.Security.AccessControl.EventWaitHandleRights rights, out System.Threading.EventWaitHandle result);
[<System.Security.SecurityCritical>]
static member TryOpenExisting : string * System.Security.AccessControl.EventWaitHandleRights * EventWaitHandle -> bool
Public Shared Function TryOpenExisting (name As String, rights As EventWaitHandleRights, ByRef result As EventWaitHandle) As Boolean
Parameter
- name
- String
Nama objek sinkronisasi yang akan dibuka dan dibagikan dengan proses lain. Namanya peka huruf besar/kecil. Karakter garis miring terbalik (\) dicadangkan dan hanya dapat digunakan untuk menentukan namespace. Untuk informasi selengkapnya tentang namespace layanan, lihat bagian keterangan. Mungkin ada pembatasan lebih lanjut pada nama tergantung pada sistem operasi. Misalnya, pada sistem operasi berbasis Unix, nama setelah mengecualikan namespace harus berupa nama file yang valid.
- rights
- EventWaitHandleRights
Kombinasi bitwise dari nilai enumerasi yang mewakili akses keamanan yang diinginkan.
- result
- EventWaitHandle
Ketika metode ini kembali, berisi EventWaitHandle objek yang mewakili peristiwa sinkronisasi bernama jika panggilan berhasil, atau null
jika panggilan gagal. Parameter ini diperlakukan sebagai tidak diinisialisasi.
Mengembalikan
true
jika peristiwa sinkronisasi bernama berhasil dibuka; jika tidak, false
. Dalam beberapa kasus, false
dapat dikembalikan untuk nama yang tidak valid.
- Atribut
Pengecualian
name
adalah string kosong.
-atau-
Hanya .NET Framework: name
lebih panjang dari MAX_PATH (260 karakter).
name
adalah null
.
name
tidak valid. Ini bisa karena berbagai alasan, termasuk beberapa batasan yang mungkin ditempatkan oleh sistem operasi, seperti awalan yang tidak diketahui atau karakter yang tidak valid. Perhatikan bahwa nama dan awalan umum "Global\" dan "Local\" peka huruf besar/kecil. Untuk beberapa nama yang tidak valid, metode dapat kembali false
sebagai gantinya.
-atau-
Ada beberapa kesalahan lainnya. Properti HResult
dapat memberikan informasi lebih lanjut.
Terlalu name
panjang. Pembatasan panjang dapat bergantung pada sistem operasi atau konfigurasi.
Peristiwa bernama ada, tetapi pengguna tidak memiliki akses keamanan yang diinginkan.
Keterangan
name
mungkin diawali dengan Global\
atau Local\
untuk menentukan namespace.
Global
Ketika namespace ditentukan, objek sinkronisasi dapat dibagikan dengan proses apa pun pada sistem.
Local
Ketika namespace layanan ditentukan, yang juga merupakan default ketika tidak ada namespace yang ditentukan, objek sinkronisasi dapat dibagikan dengan proses dalam sesi yang sama. Di Windows, sesi adalah sesi masuk, dan layanan biasanya berjalan dalam sesi non-interaktif yang berbeda. Pada sistem operasi seperti Unix, setiap shell memiliki sesinya sendiri. Objek sinkronisasi sesi-lokal mungkin sesuai untuk disinkronkan antara proses dengan hubungan induk/anak di mana semuanya berjalan dalam sesi yang sama. Untuk informasi selengkapnya tentang nama objek sinkronisasi di Windows, lihat Nama Objek.
Jika objek sinkronisasi dari jenis yang diminta ada di namespace, objek sinkronisasi yang ada akan dibuka. Jika objek sinkronisasi tidak ada di namespace, atau objek sinkronisasi dari jenis yang berbeda ada di namespace layanan, false
dikembalikan.
Untuk membuat peristiwa sistem ketika belum ada, gunakan salah EventWaitHandle satu konstruktor yang memiliki name
parameter .
Jika Anda tidak yakin apakah peristiwa sinkronisasi bernama ada, gunakan metode ini kelebihan beban alih-alih OpenExisting(String, EventWaitHandleRights) metode kelebihan beban, yang melemparkan pengecualian jika peristiwa sinkronisasi tidak ada.
Parameter rights
harus menyertakan EventWaitHandleRights.Synchronize bendera untuk memungkinkan utas menunggu pada peristiwa, dan EventWaitHandleRights.Modify bendera untuk memungkinkan utas memanggil Set metode dan Reset .
Beberapa panggilan ke metode ini yang menggunakan nilai yang sama untuk name
tidak selalu mengembalikan objek yang sama EventWaitHandle , meskipun objek yang dikembalikan mewakili peristiwa sistem bernama yang sama.