2011-03-22 1 views

Répondre

3
Process.GetCurrentProcess().Id 

est unique pour chaque instance d'un processus d'application. Il change à chaque redémarrage de l'application :)

+0

Est-ce une valeur constante pendant la durée de vie de l'instance d'application? A-t-il besoin d'être défini ou défini manuellement? – sooprise

+0

Vous ne le définissez pas. Il est généré par le noyau lorsque votre processus démarre. Il est unique et ne change pas pour la durée d'un processus. Voir http://msdn.microsoft.com/en-us/library/ms683180(v=VS.85).aspx pour plus d'informations sur les ID de processus (il s'agit de la fonction sous-jacente que la propriété .Id appelle dans le cadre .net – Washu

+0

Ça sonne bien, cela rendra mon travail de développement plus facile, et mon programme plus fiable. Merci! – sooprise

0

Vous pouvez utiliser un Guid.NewGuid(), ce qui est unique. Si vous avez besoin pour la durée de vie de votre application, vous pouvez utiliser

public static Guid ApplicationId = Guid.NewGuid(); 

qui se peuplaient la première fois ce type est utilisé.

+0

Quelque chose qui ne nécessite aucun réglage et qui vit juste à l'intérieur de C#. Je vais ajouter un addendum à mon OP. – sooprise

0

Chaque processus sous Windows a un ID de processus unique. Vous pouvez y accéder via la propriété Process.Id. Pour obtenir une instance de Process correspondant à l'instance en cours d'exécution de votre programme, appelez Process.GetCurrentProcess. Chaque instance de votre programme sera représentée comme un processus distinct dans Windows, et recevra donc un ID de processus différent (et unique).

0

Je ne sais pas si je vous ai bien compris. Tu n'as pas besoin de ça?

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; } } 
} 
Questions connexes