Better Threads For The VCL について


ほしいも  2008-03-10 02:55:21  No: 30118

スレッドについて検索したら、Better Threads For The VCL
http://www.midnightbeach.com/jon/pubs/MsgWaits/MsgWaits.html
というページを見つけたのですが、分からないことがあったので質問します。
(誤: NULL を 0 に直す)

1: なぜ、Spawn Wait ボタンを押すと、Thread Error: ハンドルが無効です。
と、エラーになり、Spawn MsgWait ボタンだとならないのか?
WaitForSingleObjectd は、ウィンドウメッセージをすべて無視してしまうので、
実行中は無反応になるのは理解できるのですが、
スレッドが終了後になぜエラーになるのでしょうか?

2: procedure TPascalTest.Beep / Pause を ShowMessage('Test') に変えると、
Project MsgWaits.exe raised exception class EInvalidOperation with message 'Canvas does not allow drawing'.
Exception EOSError in module MsgWaits.exe at 0000CF6E. ウィンドウ ハンドルが無効です。.
などと、例外が発生するのか?

以上、よろしくお願いします。


ほしいも  2008-03-12 05:02:56  No: 30119

1: についてですが、
FreeOnTerminate := True;
をコメントアウトすればエラーになりませんでした。
解放済みのスレッドハンドルを使おうとした(どこで?)ので
エラーになったのだと思います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加