Mutex.TryOpenExisting Yöntem

Tanım

Zaten varsa belirtilen adlı bir mutex'i 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, Mutex)

Belirtilen adlı mutex zaten varsa açar ve işlemin başarılı olup olmadığını belirten bir değer döndürür.

TryOpenExisting(String, MutexRights, Mutex)

Belirtilen adlı mutex'i önceden 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, Mutex)

Kaynak:
Mutex.cs
Kaynak:
Mutex.cs
Kaynak:
Mutex.cs

Belirtilen adlı mutex 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::Mutex ^ % result);
[System.Security.SecurityCritical]
public static bool TryOpenExisting (string name, out System.Threading.Mutex result);
public static bool TryOpenExisting (string name, out System.Threading.Mutex? result);
public static bool TryOpenExisting (string name, out System.Threading.Mutex result);
[<System.Security.SecurityCritical>]
static member TryOpenExisting : string * Mutex -> bool
static member TryOpenExisting : string * Mutex -> bool
Public Shared Function TryOpenExisting (name As String, ByRef result As Mutex) 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 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
Mutex

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ış mutex'i temsil eden bir Mutex nesne içerir. Bu parametre başlatılmamış olarak değerlendirilir.

Döndürülenler

true adlandırılmış mutex 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 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. 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ış mutex 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, 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ı.

İstenen türdeki 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.

Henüz mevcut olmadığında sistem mutex'ini oluşturmak için parametresi olan name oluşturuculardan birini Mutex kullanın.

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

Döndürülen nesneler aynı Mutex adlandırılmış sistem mutex'ini temsil etse bile, için aynı değeri name kullanan bu yönteme yapılan birden çok çağrı mutlaka aynı nesneyi döndürmez.

Bu yöntem aşırı yüklemesi, yöntem aşırı yüklemesini TryOpenExisting(String, MutexRights, Mutex) çağırmaya ve bit düzeyinde OR işlemi kullanılarak birleştirilen ve MutexRights.Modify hakları belirtmeye MutexRights.Synchronize eşdeğerdir. bayrağını belirtmek, bir iş parçacığının MutexRights.Synchronize mutex üzerinde beklemesine ve bayrağının belirtilmesi bir iş parçacığının MutexRights.Modify yöntemini çağırmasına ReleaseMutex olanak tanır.

Bu yöntem mutex'in sahipliğini istemez.

Şunlara uygulanır

TryOpenExisting(String, MutexRights, Mutex)

Belirtilen adlı mutex'i önceden 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::MutexRights rights, [Runtime::InteropServices::Out] System::Threading::Mutex ^ % result);
[System.Security.SecurityCritical]
public static bool TryOpenExisting (string name, System.Security.AccessControl.MutexRights rights, out System.Threading.Mutex result);
[<System.Security.SecurityCritical>]
static member TryOpenExisting : string * System.Security.AccessControl.MutexRights * Mutex -> bool
Public Shared Function TryOpenExisting (name As String, rights As MutexRights, ByRef result As Mutex) 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 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
MutexRights

İstenen güvenlik erişimini temsil eden numaralandırma değerlerinin bit düzeyinde birleşimi.

result
Mutex

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ış mutex'i temsil eden bir Mutex nesne içerir. Bu parametre başlatılmamış olarak değerlendirilir.

Döndürülenler

true adlandırılmış mutex 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 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. 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ış mutex 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, 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ı.

İstenen türdeki 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.

Henüz mevcut olmadığında sistem mutex'ini oluşturmak için parametresi olan name oluşturuculardan birini Mutex kullanın.

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

parametresi, rights iş parçacıklarının MutexRights.Synchronize mutex üzerinde beklemesine izin vermek için bayrağını ve iş parçacıklarının MutexRights.Modify yöntemini çağırmasına izin vermek için bayrağını ReleaseMutex içermelidir.

Döndürülen nesneler aynı Mutex adlandırılmış sistem mutex'ini temsil etse bile, için aynı değeri name kullanan bu yönteme yapılan birden çok çağrı mutlaka aynı nesneyi döndürmez.

Bu yöntem mutex'in sahipliğini istemez.

Şunlara uygulanır