Mar*_*art 7 c# linq asynchronous
我有一个List通过async调用WebService 填充的元素(没有问题).
我需要过滤该列表,以便在应用程序视图中显示某些内容.我试过这个:
List<DateTime> dates = EventsDates.Where(x => x.Day == tmp.Day && x.Month == tmp.Month && x.Year == tmp.Year).ToList();
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用SelectLINQ 的功能.问题是,无论何时调用此代码,EventsDates都不会填充列表,WebService尚未响应.
我怎么能尝试EventsDates异步过滤列表?
“哪里”不应该是异步的,您需要完成EventsDates的填充。像这样:
EventsDates = await YourWebServiceMethodCall();
List<DateTime> dates = EventsDates.Where (x => x.Day == tmp.Day && x.Month == tmp.Month && x.Year == tmp.Year).ToList();
Run Code Online (Sandbox Code Playgroud)
您可以像这样异步调用它,但正如其他人所说,您需要等待eventDates在使用之前从服务中解包响应.@Dmitry的回答是正确的.我只是在这里回答你如何使用异步的问题,以备将来需要时使用.
using System.Data.Entity;
List<DateTime> dates = await EventsDates.Where(x => x.Day == tmp.Day && x.Month == tmp.Month && x.Year == tmp.Year).ToListAsync();
Run Code Online (Sandbox Code Playgroud)
你也可以这样做:
var list = someCollection.Where(async x => x.Prop == await SomeLongRunningProcess());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12877 次 |
| 最近记录: |