我正在尋找一個我可以從C#調用的變量,例如對特定應用程序的實例唯一的Environment.Username(例如應用程序最初打開時的時間戳或某物)。唯一實例會話ID是否在程序中生效?
如果這樣可用,那會讓我的項目變得更容易。謝謝!
我正在尋找一個我可以從C#調用的變量,例如對特定應用程序的實例唯一的Environment.Username(例如應用程序最初打開時的時間戳或某物)。唯一實例會話ID是否在程序中生效?
如果這樣可用,那會讓我的項目變得更容易。謝謝!
Process.GetCurrentProcess().Id
對應用程序進程的每個實例都是唯一的。它確實每次重新啓動應用程序時都會更改:)
您可以使用Guid.NewGuid()
,這是唯一的。如果您在應用程序的整個生命週期中都需要它,可以使用
public static Guid ApplicationId = Guid.NewGuid();
這將在第一次使用此類型時填充。
東西不需要任何設置,只是住在C#中。我會爲我的OP添加一個附錄。 – sooprise 2011-03-22 21:41:54
Windows下的每個進程都有唯一的進程ID。您可以通過Process.Id
屬性訪問它。要獲取Process
的實例,該實例對應於當前正在運行的程序調用Process.GetCurrentProcess
的實例。您的程序的每個實例都將在Windows中作爲一個單獨的進程表示,因此將收到不同的(和唯一的)進程ID。
我不知道我是否理解你的權利。你不需要這個嗎?
public static class MyClass {
// fore every process this value will be unique, but same for whole "life" of process
private static readonly Guid unique = Guid.NewGuid();
public static Guid Unique { get { return unique; } }
}
這是應用程序實例生命週期中的一個常量值嗎?是否需要手動定義或設置? – sooprise 2011-03-22 21:43:36
你不設置它。它在您的進程啓動時由內核生成。它是獨一無二的,在一個過程的一生中不會改變。有關進程ID的更多信息,請參閱http://msdn.microsoft.com/en-us/library/ms683180(v=VS.85).aspx(這是.net屬性在.net框架中調用的基礎函數) – Washu 2011-03-22 21:44:18
聽起來不錯,這會使我的開發工作更容易,而且我的程序更可靠。謝謝! – sooprise 2011-03-22 22:01:04