Tôi đang sử dụng asp.net mvc-5 với EF-6 và tôi không chắc chắn nếu sử dụng await + ToListAsync
là hợp lệ . Ví dụ tôi có phương pháp kho sau đó trả về một IQeuryable: -Có đúng không nếu tôi đang sử dụng await + ToListAsync() trên IQueryable không được định nghĩa là một nhiệm vụ
public IQueryable<TSet> getAllScanEmailTo()
{
return t.TSets.Where(a=>a.Name.StartsWith("ScanEmail"));
}
Và tôi gọi đó là như sau: -
var emailsTo = await repository.getAllScanEmailTo().ToListAsync();
Lúc đầu tôi mặc dù tôi sẽ nhận được một lỗi vì tôi sử dụng "chờ đợi" một phương pháp mà không được định nghĩa là một nhiệm vụ, nhưng ở trên làm việc tốt ,, vì vậy bất cứ ai có thể tư vấn về điều này xin vui lòng?
Giải thích tốt và đầy đủ. –
@Yuval của tôi đã nhận thức được điều này, nhưng thường tôi sử dụng đang chờ đợi trên một nhiệm vụ ,, và tất cả các chuỗi phương pháp bên trong mã của tôi sẽ được công việc chờ đợi .. nhưng kể từ khi tôi không thể quấn IQueryable với một nhiệm vụ vì vậy tôi đã làm nó theo cách này ,, tôi đang sử dụng IQueryable -> chờ đợi .tolistasync() ... do đó, mã này sẽ hoạt động như-nếu IQueryable được bọc bên trong một Task ?. vì vậy trong trường hợp của tôi thread iis sẽ được phát hành cho đến khi thực hiện hoàn thành tolistasync(), như bình thường đang chờ hoạt động? –
@johnG Có. Chủ đề sẽ được phát hành trong khi truy vấn thực hiện và trả lại khi nó kết thúc. –