Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
Timerじゃ遅い
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=9442#CommentId13473
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
葉月
 (社会人)
投稿日時
2009/11/10 07:27:56
レスを見ますと、マルチスレッドにする必要があるようですね。
スレッドの説明とかは、?と感じてしまうかも知れません。
説明だけなのも酷なので簡単なサンプルを作りました。
サンプルを掲載する前に、ざっくりとマルチスレッドの注意点を述べます。
マルチスレッドを行う場合には、いくつかの注意があります。
例えば、フォームコントロールは複数のスレッドからへのアクセスが考慮されていません。
フォームコントロールを異なるスレッドからの操作があった場合、マーシャリングを行う必要があります。
(VS2005から、コントロールへの異なるスレッドから操作があった場合に例外が出ます)
適切にマーシャリングを行うために、デリゲートを使用してInvoke経由でアクセスを行います。
マーシャリングが必要か判定を行うために、InvokeRequiredプロパティを使用します。
各サイトの説明を理解するのも大事でですが、実際にコードを記述し、
動かしながら見た方が納得しやすいと思います。
コードを見ることで、マルチスレッドを敬遠したい理由の一端が見えてきます。
悪いところばかり上げましたが、バックグラウンドで処理を並列に行う時などには役立ちます。
■参考リンク
http://www.atmarkit.co.jp/fdotnet/vblab/appqa_06/appqa_06_01.html
http://www.atmarkit.co.jp/fdotnet/mthread/mthread02/mthread02_03.html