Tôi nghĩ rằng các phương pháp không đồng bộ được cho là hành xử giống như các phương pháp bình thường cho đến khi chúng được chờ đợi.Tại sao các phương pháp không đồng bộ không được khuyến khích không ném ngoại lệ?
Tại sao điều này không loại trừ ngoại lệ?
Có cách nào để loại bỏ ngoại lệ mà không phải đợi không?
using System;
using System.Threading.Tasks;
public class Test
{
public static void Main()
{
var t = new Test();
t.Helper();
}
public async Task Helper()
{
throw new Exception();
}
}
Là một ghi chú lịch sử, ngoại lệ ban đầu được nêu "trực tiếp" như bạn mong đợi. Tuy nhiên, hành vi này đã gây nhầm lẫn bởi vì các ngoại lệ trước và sau khi 'await' sẽ hành xử khác nhau, và nó có thể nhận được * thực sự * khó hiểu nếu' await' có điều kiện. –
@StephenCleary Khi nào nó đã thay đổi? Trong giai đoạn CTP? – i3arnon
@ I3arnon: Có; IIRC chỉ CTP đầu tiên xử lý theo cách này. –