12.2异步执行命令
来源:优易学  2010-1-12 12:03:06   【优易学:中国教育考试门户网】   资料下载   IT书店

 

在上述范例中,我们分别通过三个 SqlCommand 对象实例对 SQL Server 分别要求三段耗时的查询,并以数组存放代表异步执行状态的 WaitHandle。主线程通过 WaitHandle 类的静态方法 WaitAny等待,只要工作线程有完成任何工作,就接手该工作结果来更新画面,而 WaitAny 的调用如下:

iHdl = System.Threading.WaitHandle.WaitAny(hdl, 5000, False)

我们设置了最多等 5 秒钟(也就是程序中的 5000 毫(103)秒),因此若等待过久,会在超时后自行抛出例外。

最后要提醒一点的是错误处理,若是 ADO.NET 自身可以检测到的错误,如参数传递个数或类型不对,连接没开等等,则在执行 Begin 函数时就会直接触发例外。但若是 DB 服务器端返回的错误,则在异步执行时,ADO.NET 的底层不能任意丢出错误,因为可能并没有上层函数的调用堆栈。只有将错误记录着,若你的程序有调用 End 函数,才丢出该异常。

上一页  [1] [2] [3] [4] 

责任编辑:cyth

文章搜索:
 相关文章
热点资讯
热门课程培训