SemaphoreAcl.Create(Int32, Int32, String, Boolean, SemaphoreSecurity) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Olay oluşturma sırasında bir örneğin isteğe bağlı olarak ayarlanmasını sağlayarak bir SemaphoreSemaphoreSecurity örneği alır veya oluşturur.
public:
static System::Threading::Semaphore ^ Create(int initialCount, int maximumCount, System::String ^ name, [Runtime::InteropServices::Out] bool % createdNew, System::Security::AccessControl::SemaphoreSecurity ^ semaphoreSecurity);
public static System.Threading.Semaphore Create (int initialCount, int maximumCount, string? name, out bool createdNew, System.Security.AccessControl.SemaphoreSecurity? semaphoreSecurity);
static member Create : int * int * string * bool * System.Security.AccessControl.SemaphoreSecurity -> System.Threading.Semaphore
Public Shared Function Create (initialCount As Integer, maximumCount As Integer, name As String, ByRef createdNew As Boolean, semaphoreSecurity As SemaphoreSecurity) As Semaphore
Parametreler
- initialCount
- Int32
Semafor için eşzamanlı olarak karşılanabilecek ilk istek sayısı.
- maximumCount
- Int32
Semafor için eşzamanlı olarak karşılanabilecek en fazla istek sayısı.
- name
- String
Eşitleme nesnesi diğer işlemlerle paylaşılacaksa adı; aksi takdirde veya null
boş bir dize. Bu ad büyük/küçük harfe duyarlıdır. Ters eğik çizgi karakteri (\) ayrılmıştır ve yalnızca bir ad alanı belirtmek için kullanılabilir. Ad alanları hakkında daha fazla bilgi için açıklamalar bölümüne bakın. İşletim sistemine bağlı olarak ad üzerinde başka kısıtlamalar da olabilir. Örneğin, Unix tabanlı işletim sistemlerinde ad alanı dışlanmadan sonraki ad geçerli bir dosya adı olmalıdır.
- createdNew
- Boolean
Bu yöntem döndürdüğünde, yerel bir semafor oluşturulduğunda, yani veya Emptyolduğunda name
null
bu bağımsız değişken her zaman olarak ayarlanırtrue
. Geçerli, boş olmayan bir değere sahipse name
, bu bağımsız değişken true
sistem semaforu oluşturulduğunda olarak ayarlanır veya bu adla mevcut bir sistem semaforu bulunup bulunmadığını olarak ayarlanır false
. Bu parametre, başlatmadan iletilir.
- semaphoreSecurity
- SemaphoreSecurity
Uygulanacak isteğe bağlı semafor erişim denetimi güvenliği.
Döndürülenler
Adlandırılmışsa bir sistem semaforu veya adsızsa yerel bir semaforu temsil eden nesne.
Özel durumlar
initialCount
negatif bir sayıdır.
-veya-
maximumCount
pozitif bir sayı değildir.
initialCount
değerinden büyüktür maximumCount
.
-veya-
Yalnızca .NET Framework: name
MAX_PATH'den (260 karakter) uzundur.
name
geçersizdir. Bu, bilinmeyen bir ön ek veya geçersiz karakterler gibi işletim sistemi tarafından konulabilecek bazı kısıtlamalar da dahil olmak üzere çeşitli nedenlerle olabilir. Adın ve ortak ön eklerin "Genel\" ve "Yerel\" büyük/küçük harfe duyarlı olduğunu unutmayın.
-veya-
Başka bir hata oluştu. Özelliği HResult
daha fazla bilgi sağlayabilir.
Yalnızca Windows: name
bilinmeyen bir ad alanı belirtti. Daha fazla bilgi için bkz . Nesne Adları .
name
Çok uzun. Uzunluk kısıtlamaları işletim sistemine veya yapılandırmaya bağlı olabilir.
Sağlanan name
ile bir eşitleme nesnesi oluşturulamıyor. Farklı türde bir eşitleme nesnesi aynı ada sahip olabilir.
Açıklamalar
name
bir ad alanı belirtmek için veya Local\
ön ekine Global\
sahip olabilir. Ad alanı belirtildiğinde Global
, eşitleme nesnesi sistemdeki tüm işlemlerle paylaşılabilir.
Local
Ad alanı belirtilmediğinde de varsayılan olan ad alanı belirtildiğinde, eşitleme nesnesi aynı oturumdaki işlemlerle paylaşılabilir. Windows'da oturum, oturum açma oturumudur ve hizmetler genellikle etkileşimli olmayan farklı bir oturumda çalışır. Unix benzeri işletim sistemlerinde her kabuğun kendi oturumu vardır. Oturum yerel eşitleme nesneleri, tümü aynı oturumda çalıştırıldığı bir üst/alt ilişki ile işlemler arasında eşitleme için uygun olabilir. Windows'da eşitleme nesnesi adları hakkında daha fazla bilgi için bkz. Nesne Adları.
bir name
sağlanırsa ve istenen türdeki bir eşitleme nesnesi ad alanında zaten varsa, var olan eşitleme nesnesi açılır. Ad alanında farklı türde bir eşitleme nesnesi zaten varsa, bir WaitHandleCannotBeOpenedException
oluşturulur. Aksi takdirde, yeni bir eşitleme nesnesi oluşturulur.
Dikkat
Varsayılan olarak, adlandırılmış bir semafor onu oluşturan kullanıcıyla sınırlı değildir. Semaforu birden çok kez alarak ve serbest bırakmayarak semafora müdahale etmek de dahil olmak üzere diğer kullanıcılar semaforu açabilir ve kullanabilir. Belirli kullanıcılara erişimi kısıtlamak için, adlandırılmış semaforu oluştururken bir SemaphoreSecurity geçirebilirsiniz. Kod çalıştıran güvenilmeyen kullanıcıların olabileceği sistemlerde erişim kısıtlamaları olmadan adlandırılmış semafor kullanmaktan kaçının.