Tôi muốn chạy các khởi tạo của một số đối tượng không đồng bộ, nhưng một số đối tượng phụ thuộc vào những đối tượng khác đang được khởi tạo. Và sau đó tất cả các đối tượng cần phải được khởi tạo trước khi phần còn lại của ứng dụng của tôi tiếp tục.Bạn có thể gọi Wait() trên một tác vụ nhiều lần không?
Có thể gọi Wait() trên một nhiệm vụ và sau đó gọi Wait() trên nó một lần nữa, hoặc như trong ví dụ của tôi WaitAll() trên một bộ sưu tập mà nó được bao gồm?
Dictionary<String, Task> taskdict = new Dictionary<String, Task>();
taskdict.Add("Task1",
Task.Factory.StartNew(() => {
//Do stuff
}));
taskdict.Add("Task2",
Task.Factory.StartNew(() => {
taskdict[ "Task1" ].Wait();
//Do stuff
}));
try {
Task.WaitAll(taskdict.Values.Convert<Task[ ]>());
}
Hoặc lần thứ hai Chờ()/WaitAll() không thành công?
Cảm ơn bạn đã trả lời rõ ràng. Và cho các chi tiết về xử lý ngoại lệ. Đó là một vấn đề quan trọng tôi phải xem xét. –
@Servy nếu tôi muốn Nhiệm vụ chạy lại, chờ thứ hai. Làm thế nào tôi có thể làm mất hiệu lực kết quả nhiệm vụ? –
@MerdanGochmuradov Bạn không thể. Đó không phải là cách nhiệm vụ hoạt động. – Servy