C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 18 を表示中)
■6887 / )  Re[5]: Control.Invokeが使えない件。
□投稿者/ れい (70回)-(2007/08/26(Sun) 17:58:27)
2007/08/26(Sun) 18:53:18 編集(投稿者)

No6875 (えムナウ さん) に返信
> 元々Form2側ではClose後にTextBoxに表示する意味がないのですから、
> 以下のようにFormClosedイベントをひっかければいいと思いますが、
> 問題ありますでしょうか?

はい。
残念ながら、これでは止まる可能性があります。
とくにマルチプロセッサ、マルチスレッドプロセッサや負荷の高い状況では
止まる場合が考えられます。

formCloseチェックを潜り抜け、Invokeに入った後に
Formが閉じられ、Nyaruruさんの言う間違ったスレッド終了チェックが行われれば
止まります。

> Visual Basic 言語リファレンス SyncLock ステートメントHELP より
> SyncLock は Me を使わないほうがいいようなので、
> Form1内に Object を作ってあります。

ツッコミありがとうございます。

volatileがあればSynclockなんて要らないんですが、
作ってからvolatile相当のVBキーワードを知らないことに気づいて
あわててSynclockいれて誤魔化したのです。
なのでSynclock無くてもデバッグ環境ならちゃんと動いたり。

追記。
VBってvolatileないのね…。MyClassはあるくせに。
流石というか、なんというか。
返信 編集キー/


管理者用

- Child Tree -