2013-08-22 39 views
1

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

我试着自己找到这个,但我的google-fu没有达到鼻烟。

回答

4

这是。请参阅CreateEvent功能文档。

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

另请参阅Kernel Object Namespaces

“Session \”前缀保留给系统使用,你不应该在内核对象的名字中使用它。

+0

+1谢谢,这正是我正在寻找的信息。 –

1

这是错误的思考方式。到目前为止,您选择的名称最重要的特征是唯一。人们选择独特的名字吸引人,在这个世界上有太多叫汉斯的家伙。

将它留给一台机器来选择一个全球唯一的ID。你已经知道它是一个Guid。在Visual Studio中,单击工具+创建GUID。子弹#4是你想要的,将它复制/粘贴到你的代码中并引用它。前缀为Global\\,以使其在系统范围内。

+0

对于这么高的代表,你真的忽视了我的问题:P我渴望的独特性取决于我;如果我打算使用guid,我会将其保留为未命名,所以它是流程本地的,不是类或方法本地的。我想要一个全系统的事件等待句柄,这样我就可以让整个机器知道“嘿,如果你现在试图请求URL,请等待或从memcached抓取它,因为我现在正在请求它”。我很好地创建了自己的解决方案,我需要的只是知道我的名字是否会违反任何内核限制。无论如何,我最终制作了URL并使用Request_ {url url}。 –