Control.Invoke

コントロールの基となるウィンドウハンドルを持つスレッド上で指定したデリゲートを実行することができる。ただ、CompactFrameworkだとなぜかArgumentExpectionが発生する。こんなのばっかりだな……。

In .NET CF, you must use “EventHandler” delegate for “Form.Invoke” method. You could make a simple EventDispatcher to dispatcher the job with custom delegate and event arguments.

(http://www.eggheadcafe.com/ng/microsoft.public.dotnet.framework.compactframework/post10006036.aspより)

というわけでEventHandlerデリゲートでないと例外が発生する。あとCompactFrameworkではInvokeの際にデリゲートの引数を指定することができないが、上記記事中にあるようにdispatcherを作成すれば引数と戻り値の指定ができる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です