У меня есть приложение Windows Forms с кодом C#, как показано ниже (с таргетингом на .NET framework 4).Как ограничить экземпляры программы C# в Citrix до 1 для пользователя
На моей рабочей станции разработчика этот код работает, чтобы предотвратить запуск нескольких экземпляров программы. Однако QA имеет среду тестирования Citrix, где каждый пользователь все еще может запускать несколько экземпляров.
Что можно сделать, чтобы не дать данному пользователю запустить несколько экземпляров в Citrix?
[STAThread]
static void Main(string[] args)
{
bool isFirstInstance;
Mutex m = new Mutex(true, "[App name goes here] mutex", out isFirstInstance);
if (isFirstInstance)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run();
// Prevent the just-in-time (JIT) compiler from optimizing away our Mutex.
// See: http://www.ai.uga.edu/mc/SingleInstance.html
GC.KeepAlive(m);
}
}
Мы хотим ограничить количество экземпляров по техническим причинам. Программа использует автономный WCF для связи с другим процессом, выполняемым одним и тем же пользователем. Нам нужен только один экземпляр этой программы для каждого пользователя.
Я не знаю никаких подробностей о среде Citrix, но могу узнать.
спасибо.
Первый [быстрый хит google] (http://support.citrix.com/proddocs/topic/xenapp5fp-w2k8/ps-sessions-pub-app-app-lmts-task-v2.html). –
@nobugz: Упрек с благодарностью принят. –
Однако мы не говорим о опубликованном приложении. Наше опубликованное приложение делает системный вызов, который запускает приложение C#, которое затем появляется на экране пользователя. Возможно, мы захотим его опубликовать и запустим его вручную. Или используйте глобальный мьютекс, предложенный Богданом. –