从下面的同步I/O绑定方法开始,我如何使用async/await将其变为异步方法?
public int Iobound(SqlConnection conn, SqlTransaction tran)
{
// this stored procedure takes a few seconds to complete
SqlCommand cmd = new SqlCommand("MyIoboundStoredProc", conn, tran);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter returnValue = cmd.Parameters.Add("ReturnValue", SqlDbType.Int);
returnValue.Direction = ParameterDirection.ReturnValue;
cmd.ExecuteNonQuery();
return (int)returnValue.Value;
}
MSDN的示例都假定已经存在一个*Async方法,并没有为I/O绑定操作自己创建该方法提供任何指导。
我可以使用Task.Run(),并在这个新的Task中执行Iobound()方法,但由于该操作不是CPU-bound,因此不建议创建新的Task。
我希望使用async/await,但我卡在了如何转换这个方法的基本问题上。
ExecuteNonQueryAsync()
? - Camilo Terevintousing
。 - slugster{
的位置(是否换行)是个人偏好,更改它并没有增加任何价值。 - Evk