带搜索框的多线程

时间:2019-04-21 22:37:09

标签: c# database wpf multithreading

我有一个包含人员列表(名字,姓氏,地址...)的列表框和一个搜索框(带有TextChaned事件的TextBox) 问题是我正在运行一个搜索引发数据库,​​并且需要很长时间并且UI冻结了几秒钟...所以,如何使它具有响应能力?

1 个答案:

答案 0 :(得分:1)

假设您正在使用DataTables,可以执行以下操作:

private async void btnSearch_Click(object sender, EventArgs e) // async is important
{
    DataTable dt = await Task.Run(() => // await is important (avoids the UI freeze)
    {
        return GetData(); // Fetch your data from DB
    });
    // Fill your listbox with the data in dt
}