使用BeginExecuteNonQuery编写异步Web服务

本文关键字:Web 服务 异步 BeginExecuteNonQuery 使用 | 更新日期: 2023-09-27 17:58:57

我有一个sql存储过程,它将启动大容量插入,我不需要挂断Web服务,等待响应。我的问题是:如何在这种情况下实现BeginExecuteNonQuery?

使用BeginExecuteNonQuery编写异步Web服务

我认为这可以让你开始:

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();
   }
}