Semaphore.TryOpenExisting Metode

Definisi

Membuka semaphore bernama tertentu, jika sudah ada, dan mengembalikan nilai yang menunjukkan apakah operasi berhasil.

Overload

Nama Deskripsi
TryOpenExisting(String, Semaphore)

Membuka semaphore bernama yang ditentukan, jika sudah ada, dan mengembalikan nilai yang menunjukkan apakah operasi berhasil.

TryOpenExisting(String, SemaphoreRights, Semaphore)

Membuka semaphore bernama yang ditentukan, jika sudah ada, dengan akses keamanan yang diinginkan, dan mengembalikan nilai yang menunjukkan apakah operasi berhasil.

TryOpenExisting(String, NamedWaitHandleOptions, Semaphore)

Membuka semaphore bernama yang ditentukan, jika sudah ada, dan mengembalikan nilai yang menunjukkan apakah operasi berhasil. Jika opsi diatur ke pengguna saat ini saja, kontrol akses objek diverifikasi untuk pengguna panggilan.

TryOpenExisting(String, Semaphore)

Sumber:
Semaphore.cs
Sumber:
Semaphore.cs
Sumber:
Semaphore.cs
Sumber:
Semaphore.cs
Sumber:
Semaphore.cs

Membuka semaphore 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::Semaphore ^ % result);
public static bool TryOpenExisting(string name, out System.Threading.Semaphore result);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static bool TryOpenExisting(string name, out System.Threading.Semaphore? result);
public static bool TryOpenExisting(string name, out System.Threading.Semaphore? result);
static member TryOpenExisting : string * Semaphore -> bool
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member TryOpenExisting : string * Semaphore -> bool
Public Shared Function TryOpenExisting (name As String, ByRef result As Semaphore) As Boolean

Parameter

name
String

Nama objek sinkronisasi yang akan dibagikan dengan proses lain. Namanya sensitif terhadap penggunaan 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
Semaphore

Ketika metode ini kembali, berisi Semaphore objek yang mewakili semaphore bernama jika panggilan berhasil, atau null jika panggilan gagal. Parameter ini diperlakukan sebagai tidak diinisialisasi.

Mengembalikan

true jika semaphore bernama berhasil dibuka; jika tidak, false. Dalam beberapa kasus, false dapat dikembalikan untuk nama yang tidak valid.

Atribut

Pengecualian

name adalah string kosong.

-atau-

.NET Framework saja: 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 mungkin memberikan informasi lebih lanjut.

Terlalu name panjang. Pembatasan panjang dapat bergantung pada sistem operasi atau konfigurasi.

Semaphore bernama ada, tetapi pengguna tidak memiliki akses keamanan yang diperlukan untuk menggunakannya.

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 ditentukan, yang juga merupakan default ketika tidak ada namespace layanan yang ditentukan, objek sinkronisasi dapat dibagikan dengan proses dalam sesi yang sama. Pada 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 menyinkronkan 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 Object.

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, false dikembalikan.

Untuk membuat semaphore sistem ketika belum ada, gunakan salah Semaphore satu konstruktor yang memiliki name parameter .

Jika Anda tidak yakin apakah semaphore bernama ada, gunakan metode ini kelebihan beban alih-alih OpenExisting(String) metode kelebihan beban, yang melemparkan pengecualian jika semaphore tidak ada.

Kelebihan beban metode ini setara dengan memanggil TryOpenExisting metode kelebihan beban dan menentukan SemaphoreRights.Synchronize dan SemaphoreRights.Modify hak, dikombinasikan dengan menggunakan operasi BITWISE OR. Menentukan SemaphoreRights.Synchronize bendera memungkinkan utas untuk memasukkan semaphore, dan menentukan SemaphoreRights.Modify bendera memungkinkan utas untuk memanggil Release metode .

Berlaku untuk

TryOpenExisting(String, SemaphoreRights, Semaphore)

Membuka semaphore 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::SemaphoreRights rights, [Runtime::InteropServices::Out] System::Threading::Semaphore ^ % result);
public static bool TryOpenExisting(string name, System.Security.AccessControl.SemaphoreRights rights, out System.Threading.Semaphore result);
static member TryOpenExisting : string * System.Security.AccessControl.SemaphoreRights * Semaphore -> bool
Public Shared Function TryOpenExisting (name As String, rights As SemaphoreRights, ByRef result As Semaphore) As Boolean

Parameter

name
String

Nama objek sinkronisasi yang akan dibagikan dengan proses lain. Namanya sensitif terhadap penggunaan 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
SemaphoreRights

Kombinasi bitwise dari nilai enumerasi yang mewakili akses keamanan yang diinginkan.

result
Semaphore

Ketika metode ini kembali, berisi Semaphore objek yang mewakili semaphore bernama jika panggilan berhasil, atau null jika panggilan gagal. Parameter ini diperlakukan sebagai tidak diinisialisasi.

Mengembalikan

true jika semaphore bernama berhasil dibuka; jika tidak, false. Dalam beberapa kasus, false dapat dikembalikan untuk nama yang tidak valid.

Pengecualian

name adalah string kosong.

-atau-

.NET Framework saja: 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 mungkin memberikan informasi lebih lanjut.

Terlalu name panjang. Pembatasan panjang dapat bergantung pada sistem operasi atau konfigurasi.

Semaphore bernama ada, tetapi pengguna tidak memiliki akses keamanan yang diperlukan untuk menggunakannya.

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 ditentukan, yang juga merupakan default ketika tidak ada namespace layanan yang ditentukan, objek sinkronisasi dapat dibagikan dengan proses dalam sesi yang sama. Pada 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 menyinkronkan 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 Object.

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, false dikembalikan.

Untuk membuat semaphore sistem ketika belum ada, gunakan salah Semaphore satu konstruktor yang memiliki name parameter .

Jika Anda tidak yakin apakah semaphore bernama ada, gunakan metode ini kelebihan beban alih-alih OpenExisting(String, SemaphoreRights) metode kelebihan beban, yang melemparkan pengecualian jika semaphore tidak ada.

Parameter rights harus menyertakan SemaphoreRights.Synchronize bendera untuk memungkinkan utas memasuki semaphore, dan SemaphoreRights.Modify bendera untuk memungkinkan utas memanggil Release metode .

Beberapa panggilan ke metode ini yang menggunakan nilai yang sama untuk name tidak selalu mengembalikan objek yang sama Semaphore , meskipun objek yang dikembalikan mewakili semaphore sistem bernama yang sama.

Berlaku untuk

TryOpenExisting(String, NamedWaitHandleOptions, Semaphore)

Sumber:
Semaphore.cs
Sumber:
Semaphore.cs

Membuka semaphore bernama yang ditentukan, jika sudah ada, dan mengembalikan nilai yang menunjukkan apakah operasi berhasil. Jika opsi diatur ke pengguna saat ini saja, kontrol akses objek diverifikasi untuk pengguna panggilan.

public:
 static bool TryOpenExisting(System::String ^ name, System::Threading::NamedWaitHandleOptions options, [Runtime::InteropServices::Out] System::Threading::Semaphore ^ % result);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static bool TryOpenExisting(string name, System.Threading.NamedWaitHandleOptions options, out System.Threading.Semaphore? result);
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member TryOpenExisting : string * System.Threading.NamedWaitHandleOptions * Semaphore -> bool
Public Shared Function TryOpenExisting (name As String, options As NamedWaitHandleOptions, ByRef result As Semaphore) As Boolean

Parameter

name
String

Nama objek sinkronisasi yang akan dibagikan dengan proses lain. Namanya sensitif terhadap penggunaan huruf besar/kecil. Karakter garis miring terbalik (\) dicadangkan dan hanya dapat digunakan untuk menentukan namespace. Untuk informasi selengkapnya tentang namespace layanan, lihat bagian keterangan.

options
NamedWaitHandleOptions

Opsi cakupan untuk semaphore bernama. Default untuk mengakses terbatas pada pengguna saat ini dan sesi saat ini saja. Opsi yang ditentukan mungkin memengaruhi namespace untuk nama dan akses ke objek semaphore yang mendasar.

result
Semaphore

Ketika metode ini kembali, berisi Semaphore objek yang mewakili semaphore bernama jika panggilan berhasil, atau null jika panggilan gagal. Parameter ini diperlakukan sebagai tidak diinisialisasi.

Mengembalikan

true jika semaphore bernama berhasil dibuka; jika tidak, false. Dalam beberapa kasus, false dapat dikembalikan untuk nama yang tidak valid.

Atribut

Pengecualian

name adalah string kosong.

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 mungkin memberikan informasi lebih lanjut.

Terlalu name panjang. Pembatasan panjang dapat bergantung pada sistem operasi atau konfigurasi.

Semaphore bernama ada, tetapi pengguna tidak memiliki akses keamanan yang diperlukan untuk menggunakannya.

Keterangan

Jika objek sinkronisasi dari jenis yang diminta ada di namespace, objek sinkronisasi yang ada akan dibuka. Namun, jika options menentukan akses terbatas pada pengguna saat ini dan objek sinkronisasi tidak kompatibel dengannya, false dikembalikan. Jika objek sinkronisasi tidak ada di namespace, atau objek sinkronisasi dari jenis yang berbeda ada di namespace layanan, false dikembalikan juga.

Untuk membuat semaphore sistem ketika belum ada, gunakan salah Semaphore satu konstruktor yang memiliki name parameter .

Jika Anda tidak yakin apakah semaphore bernama ada, gunakan metode ini kelebihan beban alih-alih OpenExisting(String) metode kelebihan beban, yang melemparkan pengecualian jika semaphore tidak ada.

Berlaku untuk