2016-03-09 4 views
0

У меня есть клиентское приложение WPF, которое может иметь максимум один экземпляр в любой момент времени, если пользователь запускает второй экземпляр, он должен передать входные аргументы первому экземпляру приложения и выйти из него , i.e я запускаю первый экземпляр с аргументом «hello» и снова начинаю новый экземпляр того же самого приложения с новым аргументом «welcome», noe второй экземпляр должен передать данные «приветствуем» в первый экземпляр и выйти.Передача данных между несколькими экземплярами одного и того же приложения

Другое, что удаляет WCF и .Net, есть ли простой и чистый способ сделать это?

В настоящее время я могу сделать первый экземпляр активным, используя WindowsEventHandle, но не смог передать данные. Это одна и та же машина в пределах одного и того же входа

ответ

0

Посмотрите на Memory-Mapped Files С .NET 4 они были доступны и могут совместно использовать память с неуправляемыми приложениями.

Non-сохранялось отображаемые в память файлы Non-сохранялось файлы отображаемые в память файлы, которые не связаны с файлом на диске. Когда последний процесс завершил работу с файлом, данные утеряны, и файл будет восстановлен сборкой мусора. Эти файлы: , подходящие для создания разделяемой памяти для межпроцессных коммуникаций (IPC).

+0

Спасибо за ваш ответ Erno de Weerd :) он решил мою проблему! – Mathiyazhagan

0

Очень простой, но вы можете просто записать в файл и использовать другой экземпляр приложения для новых команд с уникальными идентификаторами для сообщений на основе текущей метки времени до миллисекунды.

0

Да, конечно. Мы попробовали несколько подходов, но тот, который использует mutex`es, кажется, работает лучше всего.

здесь некоторые образцы: How can I check for a running process per user session?

хорошая статья о mutex`es http://odetocode.com/blogs/scott/archive/2004/08/20/the-misunderstood-mutex.aspx

простая реализация https://stackoverflow.com/a/19326/444149

Если Вы ищите глубже, я уверен, что есть хороший пример в SO, который показывает, как события мьютекса могут использоваться для запуска чего-либо в другом приложении.

 Смежные вопросы

  • Нет связанных вопросов^_^