J'essaye de démarrer un processus externe et j'attends qu'il soit actif avant de poursuivre l'exécution de mon programme. Je recherche sur la base du nom du processus, mais j'ai un problème avec ma mise en œuvre si le nom du processus n'est pas ce que je m'attendais.Comment démarrer et attendre un processus externe?
//When Method1 is called, it will load the data and bring a pop up
//as adobe save dialog box (as a save dialog exe in the task bar)
Method1();
while (true)
{
foreach (Process clsProcess in Process.GetProcesses())
{
if (clsProcess.ProcessName.Contains("AdobeARM"))
{
isOpened = true;
}
}
//Once the pop up from Method 1 comes i call other methods
if (isOpened)
{
Method2();
Method3();
Method4();
break;
}
}
Cela pourrait provoquer une boucle infinie si le processus n'est jamais trouvé! Quelle est la meilleure façon de gérer cela ou alternative à while
boucle?
'Thread.Sleep (100)' –
fixé une limite de quelque sorte, que ce soit sur le nombre d'essais ou la durée de temps avant que vous renoncez à vérifier. Si vous suivez cette route, vous devriez certainement faire une pause entre les vérifications (comme le suggère @ M.Babcock). – dlev
Est-ce que ceci est prévu pour vérifier et voir s'il fonctionne? ou surveiller et attendre jusqu'à ce qu'il fonctionne? – McAden