Я предлагаю запустить фоновый поток, если виртуальная машина имеет статический IP-адрес.Вы бы назвали это предположительно в конце кода, который запускает виртуальную машину, перед возвратом списка виртуальных машин.
Этот фоновый поток может затем выполняться в цикле, который проверяет рабочее состояние виртуальной машины, а затем спит несколько секунд (или больше, если это необходимо), если он еще не запущен.Это может показаться неуклюжим, но, поскольку вы не можете получить обратный вызов, когда виртуальная машина начинает работать, ваш код должен проверять ее состояние очень часто.Этого нельзя избежать.
Вы также можете добавить в фоновый поток способ оповещения кого-либо, если виртуальная машина не достигает рабочего состояния через XX минут.
Если вы используетеВ C # 4.0 вы можете воспользоваться классом Task :
Task.Factory.StartNew(() => CheckThatVMIsRunningAndAssignStaticIP());