在c#

时间:2017-05-02 09:36:01

标签: c# asynchronous

我在c#中有一个方法:

public DataSet OpenSqlQuery(string SqlQuery)
{
    con = new SqlConnection(connection_string);
    con.Open();
    var sqlc = new SqlCommand(SqlQuery, con);
    da = new SqlDataAdapter(sqlc);
    var ds = new DataSet();
    da.Fill(ds);
    con.Close();
    return ds;
}

现在我想把它作为一个异步方法,所以我可以通过await来调用它。所以我改成了:

public async Task<DataSet> OpenSqlQuery(string SqlQuery)
{
    con = new SqlConnection(connection_string);
    con.Open();
    var sqlc = new SqlCommand(SqlQuery, con);
    da = new SqlDataAdapter(sqlc);
    var ds = new DataSet();
    await da.Fill(ds);
    con.Close();
    return ds;
}

我在await之前设置da.Fill(ds)因为在这一行,程序等待服务器。但该函数显示此错误:

  

'int'不包含'GetAwaiter'的定义,也没有扩展名   方法'GetAwaiter'接受'int'类型的第一个参数可能是   发现(您是否缺少using指令或程序集引用?)

如何使此方法异步?

P.S:主要目标是将此方法称为:

Dataset ds = await objConnect.OpenSqlQuery(query);
P.S:这个问题和可能存在的问题之间的区别在于这篇关于使现有同步方法异步的帖子,而另一个是关于制作异步方法。

0 个答案:

没有答案