Эй, я работаю над тем, что делает следующую логику.Держите дочерний процесс открытым во время опроса данных?
Создать Parent приложения, Создание дочернего процесса, иметь дочерние данные процесса опроса, Передача данных в Parent App,
Все настройки в порядке и работает, когда я вручную Console.WriteLine в дочернем процессе, и я получаю, что штраф в родительское приложение. Проблема заключается в том, что дочерний процесс выполняет опрос ввода с контроллера xbox и затем отправляет эту информацию в родительское приложение. Проблема заключается в том, что единственный способ, которым я могу думать о том, чтобы поддерживать дочерний процесс в жизни, заключается в том, что цикл находится в Main, как только выполняется определенное условие, чем закрытие. Однако цикл while не позволяет процессу опроса, поскольку он просто застрял в цикле. Главное предостережение в том, что опрос проводится через события, поэтому я не могу вручную опросить.
Любые идеи о том, как сохранить опрос типа пассивного события, сохраняя процесс открытым?
Вот установка:
static Battler m_battler = new Battler();
static void Main(string[] args)
{
m_battler = new Battler();
string[] procArgs = (string[])args;
if (procArgs.Length == 0)
{
Console.WriteLine("No Args passed");
Console.Read();
return;
}
parsedArg = procArgs[0].Split('^');
m_battler.NumBattles = Convert.ToInt32(parsedArg[0]);
m_battler имеет контроллер в нем, а затем, который использует события для вызова функции для разбора ввода и отправляет его в родительском приложении, снова нет цикла опроса его просто что-то вроде m_xboxController.ProcessedDebugOutput + = новый XboxController.DebugOutputHandler (Результат);
Результат разбирает все затем отправляет его в родительский приложение
private void AddHandler()
{
Console.WriteLine("handler");
m_xboxController = new XboxController();
TestDelegate testDel = new TestDelegate(Result);
m_xboxController.ProcessedDebugOutput += new XboxController.DebugOutputHandler(testDel);
threadInit = false;
}
public void Init(int consoleNum, string activeConsole)
{
ThreadStart ts = new ThreadStart(AddHandler);
outputThread = new Thread(ts);
outputThread.Start();
while (threadInit)
{
continue;
}
}
Здесь более подробно о том, что происходит
Почему бы не запустить цикл опроса в отдельной теме? –
Я пробовал это, но все его события управляются, я не знаю, как точно заставить это работать при работе с потоком. Я добавлю немного больше информации в вопрос – Darthlemi