Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
Leave イベントの発生原因は取得可能でしょうか?
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30664#CommentId84802
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2021/11/1 21:16:09
> BeginInvoke なるヒントをいただきまして、
処理中にウィンドウが閉じられた場合、処理タイミングによっては
ObjectDisposedException 例外が発生するのでご注意ください。
> Delegate Sub InvokeDelegate()
.NET Framework 3.5 以降には Action デリゲートがあるので、
わざわざデリゲートを用意する必要は無いですよ。
引数付きなら Action(Of ) デリゲート。
それとInvoke / BeginInvoke メソッドに渡すデリゲートは、自作デリゲートや Action デリゲートではなく、
MethodInvoker デリゲートを使うことが望ましいです。シグネチャに互換性があれば
MethodInvoker 以外でも呼べるのですが、内部的には MethodInvoker の方が効率が良いです。
Control.Invoke(Delegate, Object() ) メソッドのヘルプより引用
>
> デリゲートは、EventHandler のインスタンスである場合もあります。その場合は、
> sender パラメータにこのコントロールが含まれ、イベント パラメーターには
> EventArgs.Empty が含まれます。デリゲートは MethodInvoker のインスタンス、または
> 空のパラメータ リストをとるその他のデリゲートである場合もあります。
> EventHandler デリゲートまたは MethodInvoker デリゲートの呼び出しの方が、
> 別の種類のデリゲートの呼び出しよりも高速に実行されます。
>