美文网首页
WPF-异步处理

WPF-异步处理

作者: 写前端的大叔 | 来源:发表于2020-04-03 23:52 被阅读0次

    由于项目使用的是远程数据库,在执行sql语句时需要异步处理,如果不做异步处理,将阻塞主线程,会出现卡死的情况,大概了解了一下wpf的异步处理方法,发现和javascript差不多,使用的都是asyncawait,只是将javascript中的Promise换成了Task。具体使用方式如下所示:

    1.创建数据库工具类

    public partial class DBUtil {
            private static DBUtil _DBUtil = null;
            public static DBUtil Instance()
            {
                if (_DBUtil == null) {
                    _DBUtil = new DBUtil ();
                }
                return _DBUtil;
            }
    
            public async Task<DataTable> Query(string sql)
            {
                return await Task.Run(() =>
                {
                  //这里使用的是伪代码
                    return DataTable对象;
                });
            }
        }
    

    DBUtil为一个执行sql的工具类,Query方法为异步方法,需要添加async关键字,然后使用Task.Run来开启一个线程执行耗时的操作。在return后面加一个await方法中有await 时,方法名前必须加async

    2.执行查询语句

    public async void loadData() {
                string sql = "select * from tb_test";
                DataTable dataTable = await DBUtil .Instance().Query(sql);
                DataRowCollection rows = dataTable.Rows;
    }
    

    当调用Query方法时,需要在前面加上await关键字,并有在该作用域的方法名前添加async

    个人博客

    相关文章

      网友评论

          本文标题:WPF-异步处理

          本文链接:https://www.haomeiwen.com/subject/sfcrphtx.html