Как подать мою под управлением заявку.NET смочь получить команды, в то время как она работает?

Как я могу сделать свое уже выполнение C# Приложение Windows Form смочь получить команды от командной строки, в то время как это уже работает?

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

6
задан John Saunders 3 June 2010 в 00:10
поделиться

4 ответа

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

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

2
ответ дан 10 December 2019 в 02:43
поделиться

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

2
ответ дан 10 December 2019 в 02:43
поделиться

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

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

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

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

1
ответ дан 10 December 2019 в 02:43
поделиться

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

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

4
ответ дан 10 December 2019 в 02:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: