Tôi có các tác vụ khác nhau để đọc từ các tệp khác nhau và tìm một từ trong đó. Tôi đã đặt chúng vào một mảng công việc mà tôi bắt đầu với phương pháp waitAny như sau:Cách dừng tất cả các tác vụ khi một công việc được hoàn thành trong C#
foreach (string file in filesList)
{
files[i] = Task.Factory.StartNew(() =>
{
mySearch.Invoke(file);
});
i++;
}
System.Threading.Tasks.Task.WaitAny(files);
Tôi muốn dừng lại tất cả các nhiệm vụ khác trong thời gian sớm là một trong những nhiệm vụ kết thúc (nó kết thúc khi nó sáng lập từ). Hiện tại, với sự chờ đợi, tôi có thể biết khi nào một nhiệm vụ kết thúc, nhưng tôi không biết làm thế nào tôi có thể biết cái nào đã hoàn thành và làm thế nào để dừng các nhiệm vụ khác. Cách tốt nhất để đạt được điều này là gì?
Nhiệm vụ đã hoàn thành có để lại kết quả ở đâu đó không? Điều đó có thể bao gồm việc xác định nhiệm vụ. Nhiệm vụ đầu tiên để hoàn thành cũng có thể thiết lập một sự kiện, được kiểm tra bởi mỗi nhiệm vụ trong vòng lặp chính của nó, điều đó sẽ làm cho tất cả các nhiệm vụ khác thoát ra. – HABO
trong mySearch.Invoke, chúng phải là một vòng lặp lặp đi lặp lại từng chữ một. Sau đó, bạn có thể thêm cờ để ngắt vòng lặp khi cờ được báo hiệu, khi bất kỳ tác vụ nào tìm thấy từ đó, bạn có thể báo hiệu cờ – ComfortablyNumb