Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
BackgroundWorkerを使ってクリップボードをクリアするとエラーが起きる
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=10100#CommentId17429
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
YuO
 (社会人)
投稿日時
2011/3/15 22:21:48
System.Windows.Forms以下のクラスは,原則として「メインスレッドからのみ使用可能」です。
元はCOMのスレッドモデルからくる制約なのですが,
その都合上System.Windows.Forms.Clipboardもメインスレッドからのみ使用可能となります。
細かい話は「COM アパートメントモデル」あたりで検索すると出てくると思いますが……。
なので,メインスレッド側で実行できるようにするか,
EmptyClipboard APIを使ってCOMの問題を回避する,
というのが例外の回避方法になると思います。
MSDN: EmptyClipboard Function (Windows)
http://msdn.microsoft.com/en-us/library/ms649037.aspx