Semaphore.TryOpenExisting Yöntem

Tanım

Belirtilen adlı semaforu (varsa) açar ve işlemin başarılı olup olmadığını gösteren bir değer döndürür.

Aşırı Yüklemeler

Name Description
TryOpenExisting(String, Semaphore)

Belirtilen adlandırılmış semaforu zaten varsa açar ve işlemin başarılı olup olmadığını gösteren 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ı gösteren bir değer döndürür.

TryOpenExisting(String, NamedWaitHandleOptions, Semaphore)

Belirtilen adlandırılmış semaforu zaten varsa açar ve işlemin başarılı olup olmadığını gösteren bir değer döndürür. Seçenekler yalnızca geçerli kullanıcıya ayarlanırsa, nesnenin erişim denetimleri çağıran kullanıcı için doğrulanır.

TryOpenExisting(String, Semaphore)

Kaynak:
Semaphore.cs
Kaynak:
Semaphore.cs
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ı gösteren 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ı. 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.

result
Semaphore

Bu yöntem döndürdüğünde, çağrı başarılı olursa veya Semaphore çağrı başarısız olursa adlandırılmış semaforu temsil eden bir null nesne içerir. Bu parametre başlatılmamış olarak değerlendirilir.

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'e eşittir.

name geçersiz. Bu, bilinmeyen ö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 "Genel\" ve "Yerel\" ortak ön eklerinin büyük/küçük harfe duyarlı olduğunu unutmayın. Bazı geçersiz adlar için yöntemi döndürebilir false .

-veya-

Başka bir hata oluştu. HResult özelliği 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 Global\ ön ekine Local\ 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 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 eşitleme nesnesi adları hakkında daha fazla bilgi için bkz. Object Names.

İ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 Semaphore oluşturuculardan birini name kullanın.

Adlandırılmış bir semafor olup olmadığından emin değilseniz, semafor yoksa ö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.Synchronize hakları belirtmeye SemaphoreRights.Modify eşdeğerdir. bayrağının SemaphoreRights.Synchronize belirtilmesi, bir iş parçacığının semafora 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ı gösteren 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ı. 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.

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 Semaphore çağrı başarısız olursa adlandırılmış semaforu temsil eden bir null nesne içerir. Bu parametre başlatılmamış olarak değerlendirilir.

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'e eşittir.

name geçersiz. Bu, bilinmeyen ö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 "Genel\" ve "Yerel\" ortak ön eklerinin büyük/küçük harfe duyarlı olduğunu unutmayın. Bazı geçersiz adlar için yöntemi döndürebilir false .

-veya-

Başka bir hata oluştu. HResult özelliği 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 Global\ ön ekine Local\ 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 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 eşitleme nesnesi adları hakkında daha fazla bilgi için bkz. Object Names.

İ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 Semaphore oluşturuculardan birini name kullanın.

Adlandırılmış bir semafor olup olmadığından emin değilseniz, semafor yoksa ö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 semafora 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ı name adlandırılmış sistem semaforunu temsil etse bile, için aynı değeri Semaphore kullanan bu yönteme yapılan birden çok çağrı mutlaka aynı nesneyi döndürmez.

Şunlara uygulanır

TryOpenExisting(String, NamedWaitHandleOptions, Semaphore)

Kaynak:
Semaphore.cs
Kaynak:
Semaphore.cs

Belirtilen adlandırılmış semaforu zaten varsa açar ve işlemin başarılı olup olmadığını gösteren bir değer döndürür. Seçenekler yalnızca geçerli kullanıcıya ayarlanırsa, nesnenin erişim denetimleri çağıran kullanıcı için doğrulanır.

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

Parametreler

name
String

Diğer işlemlerle paylaşılacak eşitleme nesnesinin adı. 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.

options
NamedWaitHandleOptions

Adlandırılmış semafor için kapsam seçenekleri. Varsayılan erişim yalnızca geçerli kullanıcı ve geçerli oturum ile sınırlıdır. Belirtilen seçenekler, adın ad alanını ve temel alınan semafor nesnesine erişimi etkileyebilir.

result
Semaphore

Bu yöntem döndürdüğünde, çağrı başarılı olursa veya Semaphore çağrı başarısız olursa adlandırılmış semaforu temsil eden bir null nesne içerir. Bu parametre başlatılmamış olarak değerlendirilir.

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.

name, null'e eşittir.

name geçersiz. Bu, bilinmeyen ö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 "Genel\" ve "Yerel\" ortak ön eklerinin büyük/küçük harfe duyarlı olduğunu unutmayın. Bazı geçersiz adlar için yöntemi döndürebilir false .

-veya-

Başka bir hata oluştu. HResult özelliği 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

İstenen türde bir eşitleme nesnesi ad alanında varsa, var olan eşitleme nesnesi açılır. Ancak, geçerli kullanıcıyla sınırlı erişimi belirtirse options ve eşitleme nesnesi onunla uyumlu değilse, false döndürülür. Ad alanında bir eşitleme nesnesi yoksa veya ad alanında farklı türde bir eşitleme nesnesi varsa, false da döndürülür.

Sistem semaforunu henüz mevcut olmadığında oluşturmak için parametresi olan Semaphore oluşturuculardan birini name kullanın.

Adlandırılmış bir semafor olup olmadığından emin değilseniz, semafor yoksa özel durum oluşturan yöntem aşırı yüklemesi yerine OpenExisting(String) bu yöntem aşırı yüklemesini kullanın.

Şunlara uygulanır