我将尝试更好地理解异步线程。
一个C#应用程序包含以下代码:
IAsyncResult myResult = cmd.BeginExecuteNonQuery(); //start
while (!myResult.IsCompleted)
{
myResult.AsyncWaitHandle.WaitOne(65000);
}
cmd.EndExecuteNonQuery(myResult); //end
我的理解是程序将等待直到myResult返回true(即IsComplete)。
当myResult永远不返回true(例如命令永远运行时),aSync会超时吗?还是会一直运行下去?我该如何防止它永远运行?