Как сделать так, чтобы мое работающее приложение .NET могло получать команды во время его работы? - PullRequest
6 голосов
/ 03 июня 2010

Как я могу сделать так, чтобы мое уже работающее приложение формы Windows C # могло получать команды из командной строки, когда оно уже запущено?

Например: если мое приложение воспроизводит видео сейчас, я хочу иметь возможность набирать в командной строке «MyApp / stop», чтобы во время работы приложения оно останавливало воспроизведение видео без выхода из текущего сеанса. .

Ответы [ 4 ]

4 голосов
/ 03 июня 2010

Из вашего вопроса кажется, что ваш первый процесс все еще работает, и вы запускаете второй его экземпляр, и вы хотите, чтобы этот экземпляр связывался с первым.

То, что вы ищете, называется межпроцессное взаимодействие (IPC). Стандартный способ сделать это в .NET - использовать Windows Communication Foundation (WCF).

2 голосов
/ 03 июня 2010

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

Пример: http://www.codeproject.com/KB/cs/SingletonApplication.aspx

2 голосов
/ 03 июня 2010

Отправляя подобную команду, вы запускаете другой процесс. Определенные аргументы командной строки могут выполнять какие-то IPC для сигнализации о «главном» экземпляре работающего приложения.

1 голос
/ 03 июня 2010

Без изменения структуры вашего проекта и предположения, что ваше приложение является автономным приложением (работает на локальном ПК),

Один из способов - заставить один поток вашего приложения ожидать (WaitOne ()) именованный мьютекс или семафор ( текст ссылки ).

Когда вы запускаете ваше приложение (ваш второй экземпляр), вы анализируете свою командную строку (через аргументы args). Если args [0] содержит вашу команду "/ stop", вы "Release ()" назвали мьютекс / семафор. Тогда ваш поток (в первую очередь) будет пробужден, чтобы остановить воспроизведение видео.

Опять же (сказав все вышеизложенное), более простое решение состоит в том, чтобы в вашем приложении была кнопка STOP, где пользователь мог бы нажать на нее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...