6. กำลังออกจากแซนด์บ็อกซ์
คุณต้องปรับวิธีการสิ้นสุดแซนด์บ็อกซ์และแซนด์บ็อกซ์ด้วย ทั้งนี้ขึ้นอยู่กับวิธีที่คุณเรียกใช้แซนด์บ็อกซ์ (ดูขั้นตอนนี้)
การออกจากแซนด์บ็อกซ์ที่ทำงานพร้อมกัน
หากแซนด์บ็อกซ์ทำงานแบบพร้อมกัน การเรียกใช้จะแสดงเมื่อแซนด์บ็อกซ์ทำงานเสร็จแล้วเท่านั้น คุณจึงไม่ต้องดำเนินการใดๆ เพิ่มเติมอีก ข้อมูลโค้ดด้านล่างแสดงสถานการณ์นี้
Sandbox2::Result result = s2.Run();
LOG(INFO) << "Final execution status: " << result.ToString();
การออกจากแซนด์บ็อกซ์ที่ทำงานแบบไม่พร้อมกัน
หากแซนด์บ็อกซ์ทำงานไม่พร้อมกัน มี 2 ตัวเลือกที่สามารถยุติได้ ขั้นแรก คุณสามารถรอให้แซนด์บ็อกซ์เสร็จสมบูรณ์และรับสถานะการดำเนินการขั้นสุดท้าย โดยทำดังนี้
sandbox2::Result result = s2.AwaitResult();
LOG(INFO) << "Final execution status: " << result.ToString();
หรือคุณอาจปิดแซนด์บ็อกซ์ได้ทุกเมื่อ แต่เราขอแนะนำให้เรียกใช้ AwaitResult()
เนื่องจากแซนด์บ็อกซ์อาจสิ้นสุดการทำงานเนื่องจากสาเหตุอื่นในระหว่างนี้
s2.Kill();
sandbox2::Result result = s2.AwaitResult();
LOG(INFO) << "Final execution status: " << result.ToString();