-4

この質問が多く寄せられていることは知っていますが、非常に実用的な方法で、できればコード例を使用して尋ねたすべてのことに対して、1 つの答えが必要です。C# でデリゲート メソッドを使用する必要があるのはいつですか? それの使い方?なぜ使用する必要があるのですか?マルチスレッドとは何の関係がありますか?

どんな答えでも大歓迎です。

4

3 に答える 3

1

デリゲートは基本的にメソッド ポインターです。メソッドとそのオブジェクトへの参照があります (もちろん、静的メソッドでない限り)。

メソッドを呼び出す必要があるときはいつでもデリゲートを使用しますが、それを呼び出すコードはそれがどのメソッドであるかを知りません。最も一般的な理由は、メソッドを呼び出すコードがメソッドの前に作成されたことです (例: のようなライブラリ メソッド) List<T>.Sort(comparison)

デリゲートは別のスレッドでメソッドを呼び出すのではなく、デリゲートを使用するコードと同じスレッドで呼び出されます。メソッドが別のスレッドで呼び出されるのは、デリゲートを使用するコードが別のスレッドで既に実行されているか、具体的にはメソッドの新しいスレッドを開始するためです。

于 2012-06-09T17:12:12.297 に答える
0

マルチスレッドに関して Delegate.BeginInvoke は、バックグラウンド スレッドでメソッドを呼び出すために使用されます。デリゲートは、関数参照を ThreadPool backgroundworker などの他のマルチスレッド コンストラクトに渡すためにも使用されます。

于 2012-06-09T21:33:28.120 に答える
0

デリゲートは、C のような任意の関数を指す関数ポインターです。デリゲートをパラメーターとして他の関数に渡すことができます。

これをコールバック関数、スレッドなどに使用できます。

詳細については、このMSDNリンクを参照してください

于 2012-06-09T17:05:25.993 に答える