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();