我只是好奇,对系统范围的命名是否有任何限制EventWaitHandle
?我想使用一个 URL 作为一个名称,但它可能有很多奇怪的字符,我不希望它默默地失败或其他类似的,所以只要在这里检查是否有任何已知的非法字符对于这些名称。
我试着自己找到这个,但我的 google-fu 达不到标准。
我只是好奇,对系统范围的命名是否有任何限制EventWaitHandle
?我想使用一个 URL 作为一个名称,但它可能有很多奇怪的字符,我不希望它默默地失败或其他类似的,所以只要在这里检查是否有任何已知的非法字符对于这些名称。
我试着自己找到这个,但我的 google-fu 达不到标准。
这里是。请参阅CreateEvent函数文档。
该名称可以具有“Global\”或“Local\”前缀,以在全局或会话命名空间中显式创建对象。名称的其余部分可以包含除反斜杠字符 (\) 之外的任何字符。
另请参阅内核对象命名空间。
"Session\" 前缀是为系统使用而保留的,您不应该在内核对象的名称中使用它。
这是错误的思考方式。到目前为止,您选择的名称的最重要特征是独一无二。人们很讨厌取独特的名字,这个世界上叫汉斯的人太多了。
让机器来选择一个全球唯一的 ID。你已经知道它是一个指导。在 Visual Studio 中,单击工具 + 创建 GUID。Bullet #4 是您想要的,将其复制/粘贴到您的代码中并在其周围加上引号。前缀 withGlobal\\
使其在系统范围内。