非同期スレッドの理解を深めようとしています。非同期プロセスが永久に停止するのを停止しますか?
A C#アプリケーションは、このコードが含まれています
IAsyncResult myResult = cmd.BeginExecuteNonQuery(); //start
while (!myResult.IsCompleted)
{
myResult.AsyncWaitHandle.WaitOne(65000);
}
cmd.EndExecuteNonQuery(myResult); //end
私の理解では、myResultは(IsComplete)がtrueを返すまで、プログラムが待機するということです。
myResultがtrueを返さない場合(つまり、cmdが永遠に実行される場合)、aSyncタイムアウトは実行されますか?それともそれは走り続けますか?永遠に走るのを止めるにはどうすればいいですか?
WaitOneがタイムアウトにならないのですか? http://msdn.microsoft.com/en-us/library/85bbbxt9.aspx – dash
を参照してください。http://stackoverflow.com/questions/299198/implement-c-sharp-generic-timeout –
@dash - はい、waitoneにタイムアウトがあります。私のコードを更新しました。 –