2

我只是好奇,对系统范围的命名是否有任何限制EventWaitHandle?我想使用一个 URL 作为一个名称,但它可能有很多奇怪的字符,我不希望它默默地失败或其他类似的,所以只要在这里检查是否有任何已知的非法字符对于这些名称。

我试着自己找到这个,但我的 google-fu 达不到标准。

4

2 回答 2

6

这里是。请参阅CreateEvent函数文档。

该名称可以具有“Global\”或“Local\”前缀,以在全局或会话命名空间中显式创建对象。名称的其余部分可以包含除反斜杠字符 (\) 之外的任何字符。

另请参阅内核对象命名空间

"Session\" 前缀是为系统使用而保留的,您不应该在内核对象的名称中使用它。

于 2013-08-22T23:16:33.290 回答
0

这是错误的思考方式。到目前为止,您选择的名称的最重要特征是独一无二。人们很讨厌取独特的名字,这个世界上叫汉斯的人太多了。

让机器来选择一个全球唯一的 ID。你已经知道它是一个指导。在 Visual Studio 中,单击工具 + 创建 GUID。Bullet #4 是您想要的,将其复制/粘贴到您的代码中并在其周围加上引号。前缀 withGlobal\\使其在系统范围内。

于 2013-08-22T23:27:49.197 回答