การอัปเดตที่ Haack อ้างถึงนั้นเป็นของฉัน :) ดังนั้นฉันจะแสดงวิธีการใช้งานให้คุณดูเพราะจริงๆแล้วมันง่ายมาก ก่อนหน้านี้คุณมีวิธีการเช่นExecuteAsyncGet
ที่จะส่งกลับชนิด RestSharp RestRequestAsyncHandle
ที่กำหนดเองที่มีชื่อว่า ไม่สามารถรอประเภทนี้เป็นประเภทการasync/await
ทำงานTask
และTask<T>
ผลตอบแทน คำขอดึงของฉันเพิ่มโอเวอร์โหลดให้กับเมธอด async ที่มีอยู่ซึ่งส่งคืนTask<T>
อินสแตนซ์ เหล่านี้Task<T>
เกินได้เพิ่ม "งาน" สตริงเพิ่มชื่อของพวกเขาสำหรับตัวอย่างTask<T>
เกินสำหรับการที่เรียกว่าExecuteAsyncGet
ExecuteGetTaskAsync<T>
สำหรับการTask<T>
โอเวอร์โหลดใหม่แต่ละครั้งมีวิธีการหนึ่งที่ไม่จำเป็นต้องCancellationToken
ระบุและมีวิธีหนึ่งที่ทำ
ตอนนี้เป็นตัวอย่างจริงเกี่ยวกับวิธีการใช้งานซึ่งจะแสดงวิธีใช้ a CancellationToken
:
private static async void Main()
{
var client = new RestClient();
var request = new RestRequest("http://www.google.com");
var cancellationTokenSource = new CancellationTokenSource();
var restResponse =
await client.ExecuteTaskAsync(request, cancellationTokenSource.Token);
// Will output the HTML contents of the requested page
Console.WriteLine(restResponse.Content);
}
สิ่งนี้จะใช้การExecuteTaskAsync
โอเวอร์โหลดที่ส่งคืนTask<IRestResponse>
อินสแตนซ์ เมื่อส่งคืน a Task
คุณสามารถใช้await
คำหลักในวิธีนี้และรับTask<T>
ประเภทที่ส่งคืนกลับมา (ในกรณีนี้IRestResponse
)
คุณสามารถค้นหารหัสได้ที่นี่: http://dotnetfiddle.net/tDtKbL