使用异步方法缓存表

时间:2016-08-01 14:47:25

标签: c# linq asynchronous

这可能非常简单,但我只是从async方法开始,所以我需要帮助。我想将table缓存到List<>,而WinForm加载只是为了节省一些时间。我需要执行简单的任务async
List<item> itemsList = dataContext.Items.Where(x=>x.Active == true).ToList<Item>()
这是一项单一任务,不需要CancellationTokenSource

1 个答案:

答案 0 :(得分:1)

您需要将ToListAsync组合作为建议的注释和async OnLoad事件处理程序,如下所示。您将无法在构造函数中等待,并且您必须将事件标记为async void以便能够等待它们。

private List<Item> itemsList = null;

        public Form1()
        {
            InitializeComponent();
            Load += OnLoad;
        }

        private async void OnLoad(object sender, EventArgs eventArgs)
        {
            itemsList = await dataContext.Items.Where(x => x.Active == true).ToListAsync();
        }