EventWaitHandleAcl.Create 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.
Mendapatkan atau membuat instans, memungkinkan EventWaitHandleSecurity instans EventWaitHandle ditentukan secara opsional untuk mengaturnya selama pembuatan peristiwa.
public:
static System::Threading::EventWaitHandle ^ Create(bool initialState, System::Threading::EventResetMode mode, System::String ^ name, [Runtime::InteropServices::Out] bool % createdNew, System::Security::AccessControl::EventWaitHandleSecurity ^ eventSecurity);
public static System.Threading.EventWaitHandle Create (bool initialState, System.Threading.EventResetMode mode, string? name, out bool createdNew, System.Security.AccessControl.EventWaitHandleSecurity? eventSecurity);
static member Create : bool * System.Threading.EventResetMode * string * bool * System.Security.AccessControl.EventWaitHandleSecurity -> System.Threading.EventWaitHandle
Public Shared Function Create (initialState As Boolean, mode As EventResetMode, name As String, ByRef createdNew As Boolean, eventSecurity As EventWaitHandleSecurity) As EventWaitHandle
Parameter
- initialState
- Boolean
true
untuk mengatur status awal ke sinyal jika peristiwa bernama dibuat sebagai hasil dari panggilan ini; false
untuk mengaturnya ke tidak diberi sinyal.
- mode
- EventResetMode
Salah satu nilai enum yang menentukan apakah peristiwa direset secara otomatis atau manual.
- name
- String
Nama, jika objek sinkronisasi akan dibagikan dengan proses lain; jika tidak, null
atau string kosong. 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.
- createdNew
- Boolean
Ketika metode ini kembali, argumen ini selalu diatur ke true
jika peristiwa lokal dibuat; yaitu, kapan name
adalah null
atau Empty. Jika name
memiliki nilai yang valid dan tidak kosong, argumen ini diatur ke true
ketika peristiwa sistem dibuat, atau diatur ke false
jika peristiwa sistem yang ada ditemukan dengan nama tersebut.
- eventSecurity
- EventWaitHandleSecurity
Keamanan kontrol akses Windows opsional yang akan diterapkan.
Mengembalikan
Objek yang mewakili handel tunggu peristiwa seperti yang diminta.
Pengecualian
Nilai mode
enum berada di luar rentang hukum.
-atau-
Hanya .NET Framework: name
lebih panjang dari MAX_PATH (260 karakter).
Nilai mode
enum berada di luar rentang hukum. Dalam beberapa kasus ArgumentException malah dilemparkan.
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.
-atau-
Ada beberapa kesalahan lainnya. Properti HResult
dapat memberikan informasi lebih lanjut.
Hanya Windows: name
menentukan namespace yang tidak dikenal. Lihat Nama Objek untuk informasi selengkapnya.
Terlalu name
panjang. Pembatasan panjang dapat bergantung pada sistem operasi atau konfigurasi.
Objek sinkronisasi dengan yang disediakan name
tidak dapat dibuat. Objek sinkronisasi dari jenis yang berbeda mungkin memiliki nama yang sama.
Peristiwa bernama ada, tetapi pengguna tidak memiliki akses keamanan yang diinginkan.
Hanya .NET Framework: Panjangnya name
di luar MAX_PATH (260 karakter).
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.
name
Jika disediakan dan objek sinkronisasi dari jenis yang diminta sudah ada di namespace layanan, objek sinkronisasi yang ada akan dibuka. Jika objek sinkronisasi dari jenis yang berbeda sudah ada di namespace, akan WaitHandleCannotBeOpenedException
dilemparkan. Jika tidak, objek sinkronisasi baru dibuat.
Perhatian
Secara default, peristiwa bernama tidak dibatasi untuk pengguna yang membuatnya. Pengguna lain mungkin dapat membuka dan menggunakan peristiwa, termasuk mengganggu peristiwa dengan mengatur atau mengatur ulang acara secara tidak pantas. Untuk membatasi akses ke pengguna tertentu, Anda dapat meneruskan EventWaitHandleSecurity saat membuat peristiwa bernama. Hindari menggunakan peristiwa bernama tanpa batasan akses pada sistem yang mungkin memiliki pengguna yang tidak tepercaya yang menjalankan kode.