Tôi có một dự án ASP.NET Web Form cũ mà tôi cần phải thêm một thư viện async nữa. Tôi đã nâng cấp nó lên .NET Framework v4.5.1. Nó chạy và biên dịch hoàn hảo với Visual Studio 2013.TaskAwaiter không triển khai INotifyCompletion Khi sử dụng Visual Studio 2015
Tuy nhiên, khi tôi mở nó bằng Visual Studio 2015, nó sẽ không biên dịch. Mọi cuộc gọi không đồng bộ đều có lỗi TaskAwaiter does not implement INotifyCompletion
.
Ví dụ, đoạn mã sau:
public async Task AsyncDelay()
{
await Task.Delay(1);
}
Ném các lỗi sau:
CS4027 'TaskAwaiter' does not implement 'INotifyCompletion'
Bất kỳ sự giúp đỡ ở tất cả sẽ được đánh giá cao.
Đó là mã thất bại hoàn toàn khác nhau cho tôi: "Test.cs (17,9): lỗi CS1997: Từ 'Test.AsyncDelay()' là một phương thức async trả về 'Task', một từ khóa return không được theo sau bởi một biểu thức đối tượng. Bạn có ý định trả về ''Task''? " Nó không phải là tất cả rõ ràng những gì bạn đang cố gắng để trở về, phải trung thực. Bạn đang cố gắng đạt được điều gì? Tôi thực sự ngạc nhiên khi thấy bản dịch này trong bất kỳ kịch bản nào. –
@JonSkeet - Rất tiếc, tôi đã sửa mã ở trên. Tôi không có ý định đưa câu trả lời đó vào đó. Tôi cũng sẽ lưu ý rằng mã đó không thực sự làm bất cứ điều gì, tôi chỉ muốn chứng minh rằng tất cả các cuộc gọi không đồng bộ của tôi đều bị hỏng. –