語言

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 也就是說,當 name 是 或 nullEmpty時。 若 name 有有效且非空的值,則此參數設為true系統事件建立時,或若找到該名稱的系統事件,則設為。false

eventSecurity
EventWaitHandleSecurity

可選的 Windows 存取控制安全措施。

傳回

一個代表事件等待句柄的物件,依需求而存在。

例外狀況

mode列舉值超出法律範圍。

-或-

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

mode列舉值超出法律範圍。 在某些情況下 ArgumentException ,是被拋出的。

name 無效。 這可能有各種原因,包括作業系統可能施加的一些限制,例如未知的前綴或無效字元。 請注意,名稱及常見前綴「Global\」與「Local\」皆為大小寫區分。

-或-

還有其他錯誤。 HResult該物業可能會提供更多資訊。

Windows 僅有:name 指定了一個未知命名空間。 更多資訊請參閱 物件名稱 。

name太長了。 長度限制可能依作業系統或設定而異。

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

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

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

備註

可以name以 或 Global\ 作為前綴Local\,以指定命名空間。 當 Global 命名空間被指定時,同步物件可以與系統上的任何程序共享。 當 Local 指定命名空間時(這也是未指定命名空間時的預設),同步物件可能會與同一會話中的程序共享。 在 Windows 上,會話是登入會話,服務通常在不同的非互動會話中執行。 在類 Unix 作業系統中,每個 shell 都有自己的會話。 會話本地同步物件可能適合在具有父/子關係且所有程序都在同一會話中執行的程序間同步。 欲了解更多關於Windows同步物件名稱的資訊,請參見 Object Names。

如果提供 a name ,且該命名空間中已有該請求類型的同步物件,則會開啟該現有的同步物件。 如果命名空間中已有不同類型的同步物件,則會拋出 a WaitHandleCannotBeOpenedException 。 否則,會建立一個新的同步物件。

注意事項

預設情況下,命名事件不僅限於創建它的使用者。 其他使用者可能能夠開啟並使用該事件,包括不當設定或重置事件來干擾事件。 要限制特定使用者的存取權限,你可以在建立指定事件時傳遞 a EventWaitHandleSecurity 。 避免在可能有不受信任使用者執行程式碼的系統中使用無存取限制的命名事件。

適用於