2013-08-22 38 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}。 –