EventWaitHandle.TryOpenExisting 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
若已存在,開啟指定的同步事件,並回傳一個表示操作是否成功的值。
多載
| 名稱 | Description |
|---|---|
| TryOpenExisting(String, EventWaitHandle) |
若已存在,開啟指定的命名同步事件,並回傳一個表示操作是否成功的值。 |
| TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle) |
若已存在指定命名的同步事件,則以所需的安全存取開啟該事件,並回傳一個表示操作是否成功的值。 |
| TryOpenExisting(String, NamedWaitHandleOptions, EventWaitHandle) |
若已存在,開啟指定的命名同步事件,並回傳一個表示操作是否成功的值。 若選項僅設定為目前使用者,物件的存取控制會被驗證為呼叫使用者。 |
TryOpenExisting(String, EventWaitHandle)
若已存在,開啟指定的命名同步事件,並回傳一個表示操作是否成功的值。
public:
static bool TryOpenExisting(System::String ^ name, [Runtime::InteropServices::Out] System::Threading::EventWaitHandle ^ % result);
[System.Security.SecurityCritical]
public static bool TryOpenExisting(string name, out System.Threading.EventWaitHandle result);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static bool TryOpenExisting(string name, out System.Threading.EventWaitHandle? result);
public static bool TryOpenExisting(string name, out System.Threading.EventWaitHandle result);
public static bool TryOpenExisting(string name, out System.Threading.EventWaitHandle? result);
[<System.Security.SecurityCritical>]
static member TryOpenExisting : string * EventWaitHandle -> bool
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member TryOpenExisting : string * EventWaitHandle -> bool
static member TryOpenExisting : string * EventWaitHandle -> bool
Public Shared Function TryOpenExisting (name As String, ByRef result As EventWaitHandle) As Boolean
參數
- name
- String
同步物件名稱,將被開啟並與其他程序共享。 名稱是區分大小寫的。 反斜線字元(\)是保留的,只能用來指定命名空間。 欲了解更多命名空間資訊,請參閱備註區。 根據作業系統不同,名稱可能還有進一步限制。 例如,在基於 Unix 的作業系統中,排除命名空間後的名稱必須是有效的檔名。
- result
- EventWaitHandle
當此方法回傳時,包含 EventWaitHandle 一個物件,代表呼叫成功 null 或失敗時的命名同步事件。 此參數被視為未初始化。
傳回
true如果成功開啟命名的同步事件;否則,。 false 在某些情況下, false 可能會因姓名無效而被退回。
- 屬性
例外狀況
name 是 null。
name 無效。 這可能有各種原因,包括作業系統可能施加的一些限制,例如未知的前綴或無效字元。 請注意,名稱及常見前綴「Global\」與「Local\」皆為大小寫區分。 對於某些無效名稱,方法可能會回傳 false 。
-或-
還有其他錯誤。 房產 HResult 可能會提供更多資訊。
name太長了。 長度限制可能依作業系統或設定而異。
已命名事件存在,但使用者沒有所需的安全存取權限。
備註
可以name以 或 Global\ 作為前綴Local\,以指定命名空間。 當 Global 命名空間被指定時,同步物件可以與系統上的任何程序共享。 當 Local 指定命名空間時(這也是未指定命名空間時的預設),同步物件可以與同一會話中的程序共享。 在 Windows 上,會話是登入會話,服務通常在不同的非互動會話中執行。 在類 Unix 作業系統中,每個 shell 都有自己的會話。 會話本地同步物件可能適合用於在父/子關係中同步,且所有程序皆在同一會話中執行。 欲了解更多關於Windows同步物件名稱的資訊,請參見 Object Names。
如果命名空間中存在該請求類型的同步物件,則會開啟該現有的同步物件。 若命名空間中不存在同步物件,或命名空間中存在不同類型的同步物件, false 則會回傳。
若要在系統事件尚未存在時建立該事件,請使用 EventWaitHandle 具有 name 參數的建構子之一。
如果你不確定是否存在命名的同步事件,請使用此方法過載取代 OpenExisting(String) 方法過載,後者會在同步事件不存在時拋出例外。
此方法過載等同於呼叫 TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle) 方法過載並指定 EventWaitHandleRights.Synchronize 和 EventWaitHandleRights.Modify 權利,並結合位元順序 OR 操作。 指定 EventWaitHandleRights.Synchronize 標誌允許執行緒等待指定的系統事件,指定 EventWaitHandleRights.Modify 標誌則允許執行緒呼叫 Set and Reset 方法。
多個使用相同值 name 的呼叫不一定回傳相同的 EventWaitHandle 物件,即使回傳的物件代表相同的命名系統事件。
適用於
TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle)
若已存在指定命名的同步事件,則以所需的安全存取開啟該事件,並回傳一個表示操作是否成功的值。
public:
static bool TryOpenExisting(System::String ^ name, System::Security::AccessControl::EventWaitHandleRights rights, [Runtime::InteropServices::Out] System::Threading::EventWaitHandle ^ % result);
[System.Security.SecurityCritical]
public static bool TryOpenExisting(string name, System.Security.AccessControl.EventWaitHandleRights rights, out System.Threading.EventWaitHandle result);
[<System.Security.SecurityCritical>]
static member TryOpenExisting : string * System.Security.AccessControl.EventWaitHandleRights * EventWaitHandle -> bool
Public Shared Function TryOpenExisting (name As String, rights As EventWaitHandleRights, ByRef result As EventWaitHandle) As Boolean
參數
- name
- String
同步物件名稱,將被開啟並與其他程序共享。 名稱是區分大小寫的。 反斜線字元(\)是保留的,只能用來指定命名空間。 欲了解更多命名空間資訊,請參閱備註區。 根據作業系統不同,名稱可能還有進一步限制。 例如,在基於 Unix 的作業系統中,排除命名空間後的名稱必須是有效的檔名。
- rights
- EventWaitHandleRights
代表所需安全存取的列舉值的位元組合。
- result
- EventWaitHandle
當此方法回傳時,包含 EventWaitHandle 一個物件,代表呼叫成功 null 或失敗時的命名同步事件。 此參數被視為未初始化。
傳回
true如果成功開啟命名的同步事件;否則,。 false 在某些情況下, false 可能會因姓名無效而被退回。
- 屬性
例外狀況
name 是 null。
name 無效。 這可能有各種原因,包括作業系統可能施加的一些限制,例如未知的前綴或無效字元。 請注意,名稱及常見前綴「Global\」與「Local\」皆為大小寫區分。 對於某些無效名稱,方法可能會回傳 false 。
-或-
還有其他錯誤。 房產 HResult 可能會提供更多資訊。
name太長了。 長度限制可能依作業系統或設定而異。
已命名事件存在,但使用者沒有所需的安全存取權限。
備註
可以name以 或 Global\ 作為前綴Local\,以指定命名空間。 當 Global 命名空間被指定時,同步物件可以與系統上的任何程序共享。 當 Local 指定命名空間時(這也是未指定命名空間時的預設),同步物件可以與同一會話中的程序共享。 在 Windows 上,會話是登入會話,服務通常在不同的非互動會話中執行。 在類 Unix 作業系統中,每個 shell 都有自己的會話。 會話本地同步物件可能適合用於在父/子關係中同步,且所有程序皆在同一會話中執行。 欲了解更多關於Windows同步物件名稱的資訊,請參見 Object Names。
如果命名空間中存在該請求類型的同步物件,則會開啟該現有的同步物件。 若命名空間中不存在同步物件,或命名空間中存在不同類型的同步物件, false 則會回傳。
若要在系統事件尚未存在時建立該事件,請使用 EventWaitHandle 具有 name 參數的建構子之一。
如果你不確定是否存在命名的同步事件,請使用此方法過載取代 OpenExisting(String, EventWaitHandleRights) 方法過載,後者會在同步事件不存在時拋出例外。
rights參數必須包含EventWaitHandleRights.Synchronize允許執行緒等待事件的旗標,以及EventWaitHandleRights.Modify允許執行緒呼叫 Set and Reset 方法的旗標。
多個使用相同值 name 的呼叫不一定回傳相同的 EventWaitHandle 物件,即使回傳的物件代表相同的命名系統事件。
適用於
TryOpenExisting(String, NamedWaitHandleOptions, EventWaitHandle)
若已存在,開啟指定的命名同步事件,並回傳一個表示操作是否成功的值。 若選項僅設定為目前使用者,物件的存取控制會被驗證為呼叫使用者。
public:
static bool TryOpenExisting(System::String ^ name, System::Threading::NamedWaitHandleOptions options, [Runtime::InteropServices::Out] System::Threading::EventWaitHandle ^ % result);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static bool TryOpenExisting(string name, System.Threading.NamedWaitHandleOptions options, out System.Threading.EventWaitHandle? result);
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member TryOpenExisting : string * System.Threading.NamedWaitHandleOptions * EventWaitHandle -> bool
Public Shared Function TryOpenExisting (name As String, options As NamedWaitHandleOptions, ByRef result As EventWaitHandle) As Boolean
參數
- name
- String
同步物件名稱,將被開啟並與其他程序共享。 名稱是區分大小寫的。
- options
- NamedWaitHandleOptions
命名帳號的範圍選項。 預設權限僅限於目前使用者和當前會話。 指定的選項可能會影響名稱的命名空間以及底層句柄物件的存取。
- result
- EventWaitHandle
當此方法回傳時,包含 EventWaitHandle 一個物件,代表呼叫成功 null 或失敗時的命名同步事件。 此參數被視為未初始化。
傳回
true如果成功開啟命名的同步事件;否則,。 false 在某些情況下, false 可能會因姓名無效而被退回。
- 屬性
例外狀況
name 是空字串。
name 是 null。
name 無效。 這可能有各種原因,包括作業系統可能施加的一些限制,例如未知的前綴或無效字元。 請注意,名稱及常見前綴「Global\」與「Local\」皆為大小寫區分。 對於某些無效名稱,方法可能會回傳 false 。
-或-
還有其他錯誤。 房產 HResult 可能會提供更多資訊。
name太長了。 長度限制可能依作業系統或設定而異。
已命名事件存在,但使用者沒有所需的安全存取權限。
備註
如果命名空間中存在該請求類型的同步物件,則會開啟該現有的同步物件。 然而,若 options 指定僅限於目前使用者存取且同步物件不相容,則 false 會回傳。 如果命名空間中不存在同步物件,或命名空間中存在不同類型的同步物件, false 也會回傳。
若要在系統事件尚未存在時建立該事件,請使用 EventWaitHandle 具有 name 參數的建構子之一。
如果你不確定是否存在命名的同步事件,請使用此方法過載取代 OpenExisting(String) 方法過載,後者會在同步事件不存在時拋出例外。
多個使用相同值 name 的呼叫不一定回傳相同的 EventWaitHandle 物件,即使回傳的物件代表相同的命名系統事件。