使用BeginExecuteNonQuery编写异步Web服务
本文关键字:Web 服务 异步 BeginExecuteNonQuery 使用 | 更新日期: 2023-09-27 17:58:57
我有一个sql存储过程,它将启动大容量插入,我不需要挂断Web服务,等待响应。我的问题是:如何在这种情况下实现BeginExecuteNonQuery?
我认为这可以让你开始:
private void ExecuteCommandAsync(string sql)
{
SqlConnection conn = new SqlConnection(connectString + "Async=true;");
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = sql;
conn.Open();
cmd.BeginExecuteNonQuery(new AsyncCallback(AsyncCommandCompletionCallback), cmd);
}
private void AsyncCommandCompletionCallback(IAsyncResult result)
{
SqlCommand cmd = null;
try
{
cmd = (SqlCommand)result.AsyncState;
cmd.EndExecuteNonQuery(result);
// Do some more work here...
}
catch (Exception ex)
{
// Handle errors here
}
finally
{
cmd.Connection.Close();
cmd.Dispose();
}
}