Я не знаю, является ли это лучшим способом, но это, безусловно, способ.
Я предполагаю, что вы создаете процесс с CreateProcess
.Это возвращает PROCESS_INFORMATION
структуру, которая содержит член hProcess
.Это дескриптор дочернего процесса, который вы создали.
Здесь вы можете подождать этот дескриптор с помощью WaitOnSingleObject
, который будет блокировать до тех пор, пока данный дескриптор не будет сигнализирован (хотя это займет времяВы бы предпочли сделать это неблокирующим - это самый близкий эквивалент select
, который вы получите).
Если вы идете по многопоточному маршруту, то вы можете ждать в отдельном потоке, а затем, когда пройдет WaitOnSingleObject
, вы можете соответствующим образом уведомить рабочий поток в родительском процессе.
В однопоточном стиле вы просто будете опрашивать дескриптор в цикле, если будете использовать семантику в стиле select
.
Если у вас есть несколько дочерних объектов для ожидания (задановы уже используете select), вы можете рассмотреть WaitForMultipleObjects
- если это подходящая модель для вашего кода.