Tôi đã học được các thuộc tính tải lười trong kho lưu trữ của mình. Bây giờ tôi muốn làm điều đó, nhưng tôi cũng cần phải tải một cái gì đó từ một trang web (sử dụng Httpclient) có nghĩa là tài sản của tôi sẽ không đồng bộ.Thuộc tính tải kém với Async
public async Task<List<NewsModel>> News
{
get
{
if (_news == null)
{
CacheProvider cache = new CacheProvider();
object cachedNews = cache.Get("news");
if (cachedNews == null)
{
var client = new HttpClient();
// await HttpResponse
}
}
return _news;
}
set
{
_news = value;
}
}
Tuy nhiên, visual studio được nói với tôi rằng
"The async modifier là không hợp lệ cho mặt hàng này"
đồng thời nêu bật từ "Tin tức" trong lần đầu tiên hàng.
Có thể thực hiện việc này không? Hay tôi phải viết một phương pháp riêng biệt?
Tôi mang nó rằng bạn đã có báo cáo kết quả sử dụng cho System.Threading.Tasks? Ngoài ra, khung công tác .NET nào là nhắm mục tiêu này? Có phải Silverlight không? - Đừng bận tâm, chỉ thấy rằng đây là tài sản. Bạn sẽ muốn chuyển đổi thành các phương thức. –
Dường như với tôi như thuộc tính 'Tin tức' sẽ trực giác có kiểu' List ', trang trí' Task <> 'dường như không tự nhiên ở đây. Tại sao bạn cảm thấy rằng bạn cần phơi bày bản chất 'Task <>'? –
@AndrewCoonce Trên thực tế, nếu anh ấy muốn viết một phương thức * không đồng bộ *, anh ấy chắc chắn sẽ phải viết nó như là trả lại một nhiệm vụ. –