Если я все правильно понял, возможна ли такая ситуация, когда я могу попытаться записать какую-то информацию в еще не запущенный процесс?
Возможна ситуация, когда процесс еще не дошел до необходимой стадии "запущенности"
. Хотя QProcess, по своей функциональности, должен обеспечивать наличие работающих каналов ввода/вывода для запущенного процесса (но не факт, что процесс сразу начнет отвечать). Так что в вашем случае все должно работать. Нужно разбираться, как происходит работа с каналами. Сохранять отладочные сообщения каждого действия с точным временем в файл в обоих процессах. Но надо учитывать, что запись в файл занимает достаточно много времени, и если это потом убрать, то все опять может поломаться
.
Как тогда лучше всего определять время ожидания для запуска процесса?
Ведь сейчас нам может понадобиться около 200 мс, а при следующем запуске, к примеру, все 300 мс.
Конкретное время в мс лучше никак не определять, все равно не угадаешь
. Никто, кроме самого процесса, не сможет сообщить, какой стадии запуска он достиг. Нужно синхронизироваться с ним каким-нибудь из способов межпроцессного взаимодействия. В простом случае с QProcess каналов ввода/вывода должно хватить, в сложных - зависит от ситуации и потребностей.