MethodInvoker 代理人
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
void として宣言された、パラメーターをとらない任意のメソッドを、マネージド コード内で実行できるデリゲートを表します。
public delegate void MethodInvoker();
public delegate void MethodInvoker();
type MethodInvoker = delegate of unit -> unit
Public Delegate Sub MethodInvoker()
例
次のコード例では、 を使用 MethodInvoker して、アプリケーション フォームのタイトル バーを更新するメソッドを呼び出す方法を示します。
public partial class Form1 : Form
{
public Form1()
{
// Create a timer that will call the ShowTime method every second.
var timer = new System.Threading.Timer(ShowTime, null, 0, 1000);
}
private void ShowTime(object x)
{
// Don't do anything if the form's handle hasn't been created
// or the form has been disposed.
if (!this.IsHandleCreated || this.IsDisposed) return;
// Invoke an anonymous method on the thread of the form.
this.Invoke((MethodInvoker) delegate
{
// Show the current time in the form's title bar.
this.Text = DateTime.Now.ToLongTimeString();
});
}
}
Partial Public Class Form1
Inherits System.Windows.Forms.Form
Public Sub New()
' Create a timer that will call the ShowTime method every second.
Dim timer As System.Threading.Timer = _
New System.Threading.Timer(AddressOf ShowTime, Nothing, 0, 1000)
End Sub
Sub ShowTime(ByVal x As Object)
' Don't do anything if the form's handle hasn't been created
' or the form has been disposed.
If (Not Me.IsHandleCreated OrElse Me.IsDisposed) Then Return
' Create the method invoker.
' The method body shows the current time in the forms title bar.
Dim mi As MethodInvoker = AddressOf UpdateFormText
Me.Invoke(mi)
End Sub
Sub UpdateFormText()
Me.Text = DateTime.Now.ToLongTimeString()
End Sub
End Class
注釈
MethodInvoker は、void パラメーター リストを使用してメソッドを呼び出すために使用される単純なデリゲートを提供します。 このデリゲートは、コントロールの Invoke メソッドを呼び出す場合、または単純なデリゲートが必要だが、自分で定義したくない場合に使用できます。
拡張メソッド
GetMethodInfo(Delegate) |
指定したデリゲートによって表されるメソッドを表すオブジェクトを取得します。 |
適用対象
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET