EventWaitHandleAcl.Create 方法

定義

取得或建立 EventWaitHandle 執行個體,允許在建立事件期間選擇性地指定 EventWaitHandleSecurity 執行個體以進行設定。

public:
 static System::Threading::EventWaitHandle ^ Create(bool initialState, System::Threading::EventResetMode mode, System::String ^ name, [Runtime::InteropServices::Out] bool % createdNew, System::Security::AccessControl::EventWaitHandleSecurity ^ eventSecurity);
public static System.Threading.EventWaitHandle Create (bool initialState, System.Threading.EventResetMode mode, string? name, out bool createdNew, System.Security.AccessControl.EventWaitHandleSecurity? eventSecurity);
static member Create : bool * System.Threading.EventResetMode * string * bool * System.Security.AccessControl.EventWaitHandleSecurity -> System.Threading.EventWaitHandle
Public Shared Function Create (initialState As Boolean, mode As EventResetMode, name As String, ByRef createdNew As Boolean, eventSecurity As EventWaitHandleSecurity) As EventWaitHandle

參數

initialState
Boolean

如果已因此呼叫而建立具名事件,則為 true 以將初始狀態設定為收到訊號;否則為 false 以將其設定為未收到訊號。

mode
EventResetMode

其中一個列舉值,其決定事件要自動或手動重設。

name
String

如果同步物件要與其他處理序共用,則為名稱;否則為 null 或空字串。 名稱區分大小寫。 反斜線字元 (\) 是保留的,只能用來指定命名空間。 如需命名空間的詳細資訊,請參閱一節。 視作業系統而定,可能會進一步限制名稱。 例如,在 Unix 型作業系統上,排除命名空間之後的名稱必須是有效的檔案名。

createdNew
Boolean

當此方法傳回時,如果已建立本機事件,則此引數一律會設定為 true (意即當 namenullEmpty 時)。 如果 name 具有非空白的有效值,則此引數會在建立系統事件時設定為 true;如果找到具有該名稱的現有系統事件時,則會設定為 false

eventSecurity
EventWaitHandleSecurity

要套用的選擇性 Windows 存取控制安全性。

傳回

表示所要求事件等候控制代碼的物件。

例外狀況

mode 列舉值不在合法範圍內。

-或-

僅限 .NET Framework:name 的長度超過 MAX_PATH (260 個字元)。

mode 列舉值不在合法範圍內。 在某些情況下會改為擲回 ArgumentException

name 無效。 這可能基於數種原因,其中包括可能由作業系統設定的一些限制,例如未知前置詞或無效字元。 請注意,名稱和通用前置詞 「Global\」 和 「Local\」 會區分大小寫。

-或-

發生一些其他錯誤。 HResult 屬性可提供詳細資訊。

僅限 Windows:name 已指定未知命名空間。 請參閱物件名稱 \(英文\) 以取得詳細資訊。

name 太長。 長度限制可能會取決於作業系統或設定。

無法建立具有所提供 name 的同步物件。 不同類型的同步物件可能具有相同名稱。

具名事件存在,但使用者沒有所需的安全性存取權。

僅限 .NET Framework:name 長度超過 MAX_PATH (260 個字元)。

備註

name前面可能會加上 Global\Local\ ,以指定命名空間。 Global指定命名空間時,同步處理物件可能會與系統上的任何進程共用。 Local指定命名空間時,這也是未指定命名空間時的預設值,同步處理物件可能會與相同會話中的進程共用。 在 Windows 上,會話是登入會話,服務通常會在不同的非互動式會話中執行。 在類似 Unix 的作業系統上,每個殼層都有自己的會話。 會話本機同步處理物件可能適用于在進程與父/子關聯性之間同步處理,其中它們全都在相同會話中執行。 如需 Windows 上同步處理物件名稱的詳細資訊,請參閱 物件名稱

name如果 已提供 ,且要求的型別同步處理物件已存在於命名空間中,則會開啟現有的同步處理物件。 如果命名空間中已經存在不同類型的同步處理物件, WaitHandleCannotBeOpenedException 則會擲回 。 否則,會建立新的同步處理物件。

警告

根據預設,具名事件不限於建立它的使用者。 其他使用者可以開啟和使用事件,包括藉由設定或不當重設事件來干擾事件。 若要限制特定使用者的存取權,您可以在建立具名事件時傳入 EventWaitHandleSecurity 。 避免在執行程式碼的系統上使用具名事件,而不受存取限制。

適用於