Semaphore.TryOpenExisting 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.
Zaten varsa belirtilen adlı bir semafor açar ve işlemin başarılı olup olmadığını belirten bir değer döndürür.
Aşırı Yüklemeler
TryOpenExisting(String, Semaphore) |
Belirtilen adlandırılmış semaforu zaten varsa açar ve işlemin başarılı olup olmadığını belirten bir değer döndürür. |
TryOpenExisting(String, SemaphoreRights, Semaphore) |
Belirtilen adlandırılmış semaforu ,zaten varsa, istenen güvenlik erişimiyle açar ve işlemin başarılı olup olmadığını belirten bir değer döndürür. |
TryOpenExisting(String, Semaphore)
- Kaynak:
- Semaphore.cs
- Kaynak:
- Semaphore.cs
- Kaynak:
- Semaphore.cs
Belirtilen adlandırılmış semaforu zaten varsa açar ve işlemin başarılı olup olmadığını belirten bir değer döndürür.
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
Parametreler
- name
- String
Diğer işlemlerle paylaşılacak eşitleme nesnesinin adı. Bu ad büyük/küçük harfe duyarlıdır. Ters eğik çizgi karakteri (\) ayrılmıştır ve yalnızca 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ışladıktan sonra adın geçerli bir dosya adı olması gerekir.
- result
- Semaphore
Bu yöntem döndürdüğünde, çağrı başarılı olursa veya null
çağrı başarısız olursa adlandırılmış semaforu temsil eden bir Semaphore nesne içerir. Bu parametre başlatılmamış olarak kabul edilir.
Döndürülenler
true
adlandırılmış semafor başarıyla açıldıysa; aksi takdirde , false
. Bazı durumlarda, false
geçersiz adlar için döndürülebilir.
- Öznitelikler
Özel durumlar
name
boş bir dizedir.
-veya-
Yalnızca .NET Framework: name
MAX_PATH'den (260 karakter) uzundur.
name
, null
değeridir.
name
geçersizdir. Bu, bilinmeyen bir ön ek veya geçersiz karakterler gibi işletim sistemi tarafından yerleştirilebilen 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. Bazı geçersiz adlar için yöntemi bunun yerine döndürebilir false
.
-veya-
Başka bir hata oluştu. Özelliği HResult
daha fazla bilgi sağlayabilir.
name
Çok uzun. Uzunluk kısıtlamaları işletim sistemine veya yapılandırmaya bağlı olabilir.
Adlandırılmış semafor var, ancak kullanıcının bunu kullanmak için gereken güvenlik erişimi yok.
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 bir oturum açma oturumudur ve hizmetler genellikle farklı bir etkileşimli olmayan oturumda çalışır. Unix benzeri işletim sistemlerinde her kabuğun kendi oturumu vardır. Oturum yerel eşitleme nesneleri, işlemlerin aynı oturumda çalıştırıldığı bir üst/alt ilişki ile eşitleme için uygun olabilir. Windows'da eşitleme nesnesi adları hakkında daha fazla bilgi için bkz. Nesne Adları.
İstenen türde bir eşitleme nesnesi ad alanında varsa, var olan eşitleme nesnesi açılır. Ad alanında bir eşitleme nesnesi yoksa veya ad alanında farklı türde bir eşitleme nesnesi varsa, false
döndürülür.
Sistem semaforunu henüz mevcut olmadığında oluşturmak için parametresi olan name
oluşturuculardan birini Semaphore kullanın.
Adlandırılmış bir semafor olup olmadığından emin değilseniz, semafor yoksa bir özel durum oluşturan yöntem aşırı yüklemesi yerine OpenExisting(String) bu yöntem aşırı yüklemesini kullanın.
Bu yöntem aşırı yüklemesi, yöntem aşırı yüklemesini TryOpenExisting çağırmaya ve bit düzeyinde OR işlemi kullanılarak birleştirilen ve SemaphoreRights.Modify hakları belirtmeye SemaphoreRights.Synchronize eşdeğerdir. bayrağını SemaphoreRights.Synchronize belirtmek, bir iş parçacığının semaforu girmesine ve bayrağının belirtilmesi ise bir iş parçacığının SemaphoreRights.Modify yöntemini çağırmasına Release olanak tanır.
Şunlara uygulanır
TryOpenExisting(String, SemaphoreRights, Semaphore)
Belirtilen adlandırılmış semaforu ,zaten varsa, istenen güvenlik erişimiyle açar ve işlemin başarılı olup olmadığını belirten bir değer döndürür.
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
Parametreler
- name
- String
Diğer işlemlerle paylaşılacak eşitleme nesnesinin adı. Bu ad büyük/küçük harfe duyarlıdır. Ters eğik çizgi karakteri (\) ayrılmıştır ve yalnızca 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ışladıktan sonra adın geçerli bir dosya adı olması gerekir.
- rights
- SemaphoreRights
İstenen güvenlik erişimini temsil eden numaralandırma değerlerinin bit düzeyinde birleşimi.
- result
- Semaphore
Bu yöntem döndürdüğünde, çağrı başarılı olursa veya null
çağrı başarısız olursa adlandırılmış semaforu temsil eden bir Semaphore nesne içerir. Bu parametre başlatılmamış olarak kabul edilir.
Döndürülenler
true
adlandırılmış semafor başarıyla açıldıysa; aksi takdirde , false
. Bazı durumlarda, false
geçersiz adlar için döndürülebilir.
Özel durumlar
name
boş bir dizedir.
-veya-
Yalnızca .NET Framework: name
MAX_PATH'den (260 karakter) uzundur.
name
, null
değeridir.
name
geçersizdir. Bu, bilinmeyen bir ön ek veya geçersiz karakterler gibi işletim sistemi tarafından yerleştirilebilen 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. Bazı geçersiz adlar için yöntemi bunun yerine döndürebilir false
.
-veya-
Başka bir hata oluştu. Özelliği HResult
daha fazla bilgi sağlayabilir.
name
Çok uzun. Uzunluk kısıtlamaları işletim sistemine veya yapılandırmaya bağlı olabilir.
Adlandırılmış semafor var, ancak kullanıcının bunu kullanmak için gereken güvenlik erişimi yok.
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 bir oturum açma oturumudur ve hizmetler genellikle farklı bir etkileşimli olmayan oturumda çalışır. Unix benzeri işletim sistemlerinde her kabuğun kendi oturumu vardır. Oturum yerel eşitleme nesneleri, işlemlerin aynı oturumda çalıştırıldığı bir üst/alt ilişki ile eşitleme için uygun olabilir. Windows'da eşitleme nesnesi adları hakkında daha fazla bilgi için bkz. Nesne Adları.
İstenen türde bir eşitleme nesnesi ad alanında varsa, var olan eşitleme nesnesi açılır. Ad alanında bir eşitleme nesnesi yoksa veya ad alanında farklı türde bir eşitleme nesnesi varsa, false
döndürülür.
Sistem semaforunu henüz mevcut olmadığında oluşturmak için parametresi olan name
oluşturuculardan birini Semaphore kullanın.
Adlandırılmış bir semafor olup olmadığından emin değilseniz, semafor yoksa bir özel durum oluşturan yöntem aşırı yüklemesi yerine OpenExisting(String, SemaphoreRights) bu yöntem aşırı yüklemesini kullanın.
parametresi, rights
iş parçacıklarının SemaphoreRights.Synchronize semafor girmesine izin vermek için bayrağını ve iş parçacıklarının SemaphoreRights.Modify yöntemini çağırmasına izin vermek için bayrağını Release içermelidir.
Döndürülen nesneler aynı Semaphore adlandırılmış sistem semaforunu temsil etse bile, için name
aynı değeri kullanan bu yönteme yapılan birden çok çağrı mutlaka aynı nesneyi döndürmez.