6. การออกจากแซนด์บ็อกซ์

คุณต้องปรับวิธีสิ้นสุดแซนด์บ็อกซ์และ Sandboxee ด้วย ทั้งนี้ขึ้นอยู่กับวิธีที่คุณเรียกใช้แซนด์บ็อกซ์ (ดูขั้นตอนนี้)

การออกจากแซนด์บ็อกซ์ที่ทำงานแบบพร้อมกัน

หากแซนด์บ็อกซ์ทำงานแบบซิงโครนัส Run จะแสดงผลเมื่อ Sandboxee เสร็จสิ้นเท่านั้น ดังนั้นจึงไม่จำเป็นต้องดำเนินการเพิ่มเติมเพื่อสิ้นสุดการให้บริการ ข้อมูลโค้ดด้านล่างแสดงสถานการณ์นี้

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

การออกจากแซนด์บ็อกซ์ที่ทำงานแบบไม่พร้อมกัน

หากแซนด์บ็อกซ์ทำงานแบบไม่พร้อมกัน คุณจะมีตัวเลือก 2 อย่างในการสิ้นสุดการทำงาน ก่อนอื่น คุณสามารถรอให้ Sandboxee เสร็จสมบูรณ์และรับสถานะการดำเนินการสุดท้ายได้โดยทำดังนี้

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

หรือคุณจะปิด Sandboxee ได้ทุกเมื่อ แต่เรายังคง แนะนําให้เรียกใช้ AwaitResult() เนื่องจาก Sandboxee อาจสิ้นสุด ด้วยเหตุผลอื่นในระหว่างนี้

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