State machine · async/await

Máy trạng thái trình biên dịch sinh ra cho GetOrderAsync

Máy trạng thái của GetOrderAsync Phương thức async chạy ở state -1, mỗi await chưa xong chuyển máy sang trạng thái treo 0 hoặc 1 mà không giữ thread nào, khi I/O xong một thread bất kỳ chạy tiếp, và biến cục bộ sống qua await được nâng thành field trên heap. GỌI HÀM AWAIT 1 I/O XONG AWAIT 2 I/O XONG RETURN NÂNG LÊN Treo ở await 1state = 0 · FindAsynckhông thread nào chờ Treo ở await 2state = 1 · GetAsynckhông thread nào chờ Đang chạy MoveNext()state = -1sau await: có thể thread khác Task hoàn thànhreturn order / null Field của máy trạng tháibiến sống qua await CHÚ GIẢIĐang treo: thread đã về poolChuyển trạng tháiNằm trên heapLưu lại qua await © tiennhm