tôi sử dụng hàm đệ quy để làm điều gì đóLàm thế nào để chờ đợi tất cả các hoạt động không đồng bộ?
public async void walk(StorageFolder folder)
{
IReadOnlyList<StorageFolder> subDirs = null;
subDirs = await folder.GetFoldersAsync();
foreach (var subDir in subDirs)
{
var dirPath = new Profile() { FolderPath = subDir.Path};
db.Insert(dirPath);
walk(subDir);
}
tbOut.Text = "Done!";
}
Vì vậy, tôi muốn điều đó tbOut.Text = "Xong!"; sẽ chỉ được thực hiện sau khi tất cả các lần lặp lại kết thúc. Hiện tại nó xảy ra cùng một lúc trong khi lặp lại trong quá trình. Nếu tôi chạy chức năng này như vậy
walk(fd);
tbOut.Text = "Done!";
kết quả vẫn như cũ. Làm thế nào để chờ đợi khi chức năng này sẽ kết thúc hoàn toàn?
Thật vậy, bạn nên gần như không bao giờ * * có một 'phương pháp async void' ... họ về cơ bản chỉ có mặt để cho phép xử lý sự kiện để không đồng bộ. –
Thanx! Điều đó hoạt động! – splash27