6. Quitter le bac à sable

Vous devez modifier la manière dont vous exécutez le bac à sable (voir cette étape), et donc comment celui-ci doit s'arrêter.

Quitter un bac à sable exécuté de manière synchrone

Si le bac à sable s'exécute de manière synchrone, la fonction Run n'est renvoyée qu'une fois le bac à sable terminé. Par conséquent, aucune étape supplémentaire n'est requise pour résilier. L'extrait de code ci-dessous illustre ce scénario:

Sandbox2::Result result = s2.Run();
LOG(INFO) << "Final execution status: " << result.ToString();

Quitter un bac à sable exécuté de manière asynchrone

Si le bac à sable s'exécute de manière asynchrone, deux options d'arrêt sont disponibles. Tout d'abord, il vous suffit d'attendre la fin de l'opération Sandboxee pour obtenir l'état final de l'exécution:

sandbox2::Result result = s2.AwaitResult();
LOG(INFO) << "Final execution status: " << result.ToString();

Vous pouvez également fermer le Sandboxee à tout moment. Toutefois, il est toujours recommandé d'appeler AwaitResult(), car il pourrait s'arrêter pour une autre raison:

s2.Kill();
sandbox2::Result result = s2.AwaitResult();
LOG(INFO) << "Final execution status: " << result.ToString();