マルチスレッドにはほとんど問題がありません。CreateThread を使用して独自のスレッドを作成し、プログラムの開始時に作成します (申し訳ありませんが、現時点では VCL スレッドを使用できません)。だから私のスレッドは私のVCLフォームで働いています。すべてのプログラム寿命 2 番目のスレッド寿命も。しかし、ここで1つの問題。VCL フォームがスレッドを終了するときに、いくつかのフォーム (クラス) パラメータをチェックできます。メイン フォームが既に終了していて、一部のスレッドがこのフォームのメソッドをチェックしようとすると、確かにアクセス違反が発生しました。
VCL フォームでチェック パラメータを保護するにはどうすればよいですか? ありがとう!
これが私のコードです。
unsigned int WINAPI CheckMutex( LPVOID lpParam )
{
const int def = 20;
int Cnt = def;
UnicodeString text;
while (1)
{
if (!UpdFrm || !UpdFrm->Label8 || UpdFrm->MutexTerminate)
break;
最初にUpdFrmへのポインターをチェックしていますが、VCLフォームは終了できますが、フォームへのポインターはまだ生きています。そのため、いくつかのコントロールが存在するかどうかを確認します。その後、 MutexTerminate をチェックします