C# 为什么cmd.BeginExecutenQuery(回调,cmd)抛出;异步操作已完成";
在下面的代码C# 为什么cmd.BeginExecutenQuery(回调,cmd)抛出;异步操作已完成";,c#,ado.net,wcf-data-services,C#,Ado.net,Wcf Data Services,在下面的代码命令中。EndExecuteNonQuery抛出 异步操作已完成 endexecutenquery结束异步操作。MSDN声明使用endexecutenonquiry正确完成操作。有什么想法吗 using (var command = new SqlCommand("EXEC SP", connection)) { AsyncCallback callback = HandleCallBack; command.BeginExecuteNonQuery(callback
命令中。EndExecuteNonQuery
抛出
异步操作已完成
endexecutenquery
结束异步操作。MSDN声明使用endexecutenonquiry
正确完成操作。有什么想法吗
using (var command = new SqlCommand("EXEC SP", connection))
{
AsyncCallback callback = HandleCallBack;
command.BeginExecuteNonQuery(callback, command);
}
private void HandleCallBack(IAsyncResult result)
{
try
{
using (var command = (SqlCommand)result.AsyncState)
{
command.EndExecuteNonQuery(result);
}
}
catch (Exception ex)
{
}
}
在异步操作完成之前,不应(在这里通过using语句隐式地)处理该命令
将using语句替换为try/catch以在Begin出现异常时释放命令,并在异步回调中添加try/FINAL以释放命令。在异步操作完成之前,不应释放命令(此处通过using语句隐式地释放) 将using语句替换为try/catch以在开始时处理异常命令,并在异步回调中添加try/finally以处理该命令