Bằng cách tạo một hoặc nhiều chờ đợi và chờ đợi, có thể xây dựng coroutines trong C# không?C# không đồng bộ, đang chờ đợi mà không có nhiệm vụ
Lý tưởng nhất là tôi muốn để có thể viết một cái gì đó như:
void async Click() {
var mouse_position = await left_mouse_click();
await shoot_projectile();
}
và sau đó lấy từ Click phương pháp một cái gì đó mà tôi có thể một trong hai đang chờ đợi bên trong một phương pháp async hay mà tôi rõ ràng có thể lặp với một số MoveNext/Phương thức GetResult.
Mục tiêu cuối cùng là tôi cần tích hợp C# async/await với F # monodic coroutines cho khung phát triển trò chơi (http://casanova.codeplex.com).
Vâng, có vẻ như vậy. Tôi chỉ cần có khả năng mang lại bên trong một async và bước qua tất cả các sản lượng thu được từ một vòng lặp bên ngoài, nhưng tôi không thể tìm thấy thông tin về cách thực hiện điều này ... –
'Task's không được thiết kế cho điều đó. Nhóm Rx bắt đầu làm việc trên một 'IAsyncEnumerator' có hành vi bạn mô tả (có một video Channel9 cũ trên đó), nhưng công việc đó đã được tất cả nhưng bị bỏ rơi vì nó gần như không bao giờ là cách tiếp cận đúng. Tôi khuyên bạn nên sử dụng Rx thông thường thay thế. –
Bằng cách thêm phần tiếp tục vào danh sách toàn cầu về các lần tiếp tục mà tôi có thể giải phóng bản thân mình bên trong một tùy chỉnh đang chờ đợi, tôi có thể mô phỏng những gì tôi cần. Tôi vẫn buộc phải trả lại một nhiệm vụ nếu tôi muốn một phương pháp không đồng bộ không có giá trị mặc dù, và điều đó có vẻ lạ! –