Tôi có một công việc với một sự tiếp nối để xử lý các lỗi:công tác Tiếp tục (OnlyOnFaulted) vẫn được không quan sát được ngoại lệ
var uiScheduler = TaskScheduler.FromCurrentSynchronizationContext();
var loadTask = Task<List<OrderItemViewModel>>.Factory.StartNew(() =>
{
throw new Exception("derp");
});
var errorContinue = loadTask.ContinueWith(t =>
{
MainViewModel.RemoveViewModel(this);
}, CancellationToken.None, TaskContinuationOptions.OnlyOnFaulted, uiScheduler);
Tiếp tục là hit, nhưng vài giây sau, tôi nhận được lỗi này trong ứng dụng:
(Các) ngoại lệ của Công việc không được quan sát bằng cách chờ đợi trên Task hoặc truy cập thuộc tính Ngoại lệ của nó. Kết quả là, ngoại lệ không được trả lời đã được chỉnh sửa bởi chuỗi kết thúc.
Điều này có liên quan đến uiScheduler không? Giải pháp cho những câu hỏi tương tự về cơ bản là những gì tôi đang làm A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was
Microsoft đã thay đổi chính sách ngoại lệ .NET kể từ khi câu trả lời này được viết. Xem các ngoại lệ không được giám sát tại https://msdn.microsoft.com/en-us/library/hh367887.aspx#core –