ส่งกำหนดเวลาไปยังการทำงานที่สามารถยกเลิกงานเครือข่ายได้ สำหรับ .NET HttpClient ที่มีอยู่และกำหนดค่าผ่านพร็อกซี:

using var deadline = new CancellationTokenSource(TimeSpan.FromSeconds(20));
using var response = await client.GetAsync(uri, deadline.Token);

แอปพลิเคชันจัดหา client และ uri ให้ โอเวอร์โหลดนี้รับโทเคนการยกเลิก การหมดเวลารอบการรอสำหรับงานของมันจะจำกัดเพียงการรอของผู้เรียกนั้นเท่านั้น การสำรวจแฟล็กการเสร็จสิ้นก็มีปัญหาเดียวกัน ผู้เรียกอาจจากไปในขณะที่ซ็อกเก็ตและเวิร์กเกอร์ยังคงถูกใช้งานอยู่

การยกเลิกเป็นไปตามการทำงานของไคลเอนต์และเส้นทางการทำความสะอาด ไม่ได้รับประกันว่าทุกการกระทำระดับล่างจะหยุดที่คำสั่งที่แน่นอน ปล่อยให้เส้นทางนั้นเสร็จสิ้นและปล่อยทรัพยากรที่การทำงานเป็นเจ้าของ รวมการอ่านเนื้อหาที่ควบคุมแยกไว้ในการออกแบบ สำหรับการทำงาน .NET ResponseHeadersRead สมัยใหม่ ส่งโทเคนเดียวกันผ่านการอ่านเนื้อหา ไคลเอนต์อื่นมีอินเทอร์เฟซการยกเลิก การยกเลิกกลางคัน และการทำความสะอาดของตนเอง

การลองใหม่ต้องมีผลลัพธ์สำหรับครั้งก่อน เก็บตัวระบุและพร็อกซีที่เลือกไว้ ขอการยกเลิกเมื่อจำเป็น และหลีกเลี่ยงการสูญเสียงานขณะเริ่มตัวแทนอย่างไม่สิ้นสุด มิฉะนั้นปลายทางที่ช้าอาจสะสมงานเร็วกว่าที่แอปพลิเคชันปล่อย

ผลลัพธ์ระยะไกลต้องจัดการแยก ปลายทางอาจได้รับการส่งแล้วเมื่อการยกเลิกเกิดขึ้น ใช้แนวนโยบายการกู้คืนหรือ idempotency ของแอปพลิเคชัน การหยุดงานภายในไม่ได้ยกเลิกการกระทำระยะไกล

บทความที่เกี่ยวข้อง