問題タブ [multicastdelegate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1819 参照

c# - 後で代理人を呼び出すこと。デリゲートキュー

だから私はc#にかなり慣れていないので、この問題に遭遇しました。異なるデリゲートを呼び出すメソッドがいくつかあります(引数の種類が異なる可能性があります)。ただし、これらの代理人はすぐに呼び出されるべきではありません。メインスレッドがデリゲートを実行している場合は、デリゲートをキューに入れて後で実行するように、後で実行する必要があります。
これでDynamicInvokeを使用できる可能性がありますが、キューの速度が大幅に低下するかどうかはわかりません。さらに、デリゲートタイプと、検索するパラメーターの種類がわかっているため、ランタイムに依存しません。できれば助けてください、私は本当に答えが必要です。

みんなありがとう(応答してくれます)

0 投票する
1 に答える
516 参照

c# - マルチキャスト デリゲートは Builder パターンを実装しますか?

マルチキャスト デリゲートの使用は、Builder デザイン パターンを実装する適切な方法ですか?

私が質問する理由は、Builder パターンの概念/理解が、レゴ ブロックのように組み合わせ/再配置できるメソッドのコレクションであるためです。したがって、次の方法があるかもしれません。

...それを組み合わせたり、LEGO で組み合わせたりできるので、ある朝、

...別の朝:

...別の朝:

(etc. &c. ad infinitum ad nauseum)

また、マルチキャスト デリゲートを使用すると、同じ署名のメソッドをデリゲートのインスタンスに追加でき、それらは追加した順序で起動するため、ここには意味的なつながりがあるようです (私の考えでは/私の現在の考え方に対して、とりあえず)。間違っているかもしれませんが、質問させてください。

0 投票する
3 に答える
9332 参照

c# - マルチキャスト デリゲートの戻り値の型は void でなければなりません。なんで?

マルチキャスト デリゲートの戻り値の型は void である必要があります。そうでない場合、例外がスローされます。

その背後にある理由を知りたいのですが、複数のメソッドがデリゲートと同じ戻り値の型を持つ可能性がある場合はどうなりますか?

0 投票する
1 に答える
673 参照

castle-windsor - キャッスルウィンザー施設がナンシーウィンザーブートストラッパーとうまく機能していない

ナンシー0.7から0.12にアップグレードしようとすると奇妙な問題が発生します。以前は、ブートストラッパー内のすべてのサービスのログを記録する機能を登録していました。

LoggingFacilityは次のようになります。

残念ながら、0.12 / Castle 3.1にアップグレードしてから、次の行でWindsorNancyBootstrapper.RegisterTypes問題が発生しています。

基本的に、CastleはFuncの周りに動的プロキシを作成しようとします。この登録が私の施設がサブスクライブしたイベントをトリガーした場合、これは問題ありませんが、そうではありません。それでも、インターセプターはとにかく登録されているようです。

MulticastDelgate(Func <>のILの親)が封印されているため、プロキシを作成しようとすると明らかに失敗します。TypeLoadExceptionアセンブリからタイプ'Castle.Proxies.Func`1Proxy'を読み込めませんでした'DynamicProxyGenAssembly2、Version = 0.0.0.0、Culture = neutral 、PublicKeyToken =a621a9e7e5c32e69'親タイプ​​がシールされているため。

ここで何をするのかわかりませんが、FacilitiesとNancy 0.12の経験はありますか?

0 投票する
1 に答える
157 参照

objective-c - マルチキャスト ブロック: 一般化する方法

ゴール

ブロックをプラグインして特定のイベントを受け取るために使用できるさまざまなプロパティを持つクラスがあります。

クライアント コードでは、C# の MulticastDelegate と同様に、このプロパティにハンドラー ブロックを動的に追加/削除したいと考えています。

loggerたとえば、プラグインしたいのですが、特定のメソッドの実行中に-(id)initのみ使用します。が接続されてdoSomethingいる間は、実行する必要があります。doSomethinglogger

現在の実装

NSMutableArrayブロックを維持するために、ブロックのコピーを保存し、登録されているすべてのブロックにイベントをブロードキャストする を使用することを考えました(オブザーバー パターン)。

- (id)init

- (void)someOtherMethod

未解決の質問

メソッドは、任意の引数のカウント/タイプを持つブロックに一般化できますか? 私はこのようにそれを使うことができるように:

ここでの問題は、 の型が であるということself.object.handlerですvoid (^)(int, int)。したがって、MulticastBlockブロックを模倣して、受信した呼び出しを配列に転送する必要があります。

ここで説明されている手法を使用できますか?

すべての呼び出しをインターセプトし、配列要素ごとにコピーして、新しい呼び出しターゲットを割り当てているのでしょうか?

0 投票する
0 に答える
228 参照

vb.net - VB.NET プログラムへのマルチキャスト デリゲートの追加

ある課題で、デリゲートを使用して 4 つの基本的な数学関数を一度に実行するプログラムを作成することになっていました。私がしたこと。これがそのコードです。

ここで、4 つのプロシージャすべてを保持し、DynamicInvoke() メソッドを使用してプロシージャを呼び出すマルチキャスト デリゲートをこのプログラムに追加するように依頼されました。プログラムのどこにどのように追加しますか?

0 投票する
1 に答える
79 参照

c# - ソフトウェア コーディングにおけるマルチキャスト デリゲートの有用性

定義によると、マルチキャスト デリゲートの概念は、それが複数の関数への参照を保持していることを説明しています。しかし、日常の実践や実際の例で使用されるマルチキャスト デリゲートはどこにあるのでしょうか。

ありがとう

0 投票する
6 に答える
7226 参照

ios - Swift 言語マルチキャスト デリゲート

Swift でマルチキャスト デリゲート機能を実装しようとしています。Objective C には、この優れた実装があります。

https://github.com/robbiehanson/XMPPFramework/blob/master/Utilities/GCDMulticastDelegate.m

そして、この基本的な機能を作成しました:

私の問題は、これを行う方法を理解できないように見えることです:

コマンド「testString()」をノード内のすべてのデリゲートに与えるため。誰でもこれで私を助けることができますか?

0 投票する
0 に答える
267 参照

c# - 1 つのイベントから複数のメソッドを呼び出す適切な方法は何ですか?

pictureBox クリック イベントから複数の色補正メソッドを呼び出しています。問題は、メソッドがスキップされる場合があることです。メソッドが 2 回実行されることがあります。したがって、メソッドを呼び出す最善の方法を使用していない可能性があります。コードは次のとおりです。

編集:質問が不明確であるというコメントを受け取りました。私には明らかです。しかし、私が間違っている場合に備えて、明確にさせてください。複数のメソッドを呼び出す現在の方法でエラーが発生しています。そうする適切な方法は何ですか?

6 つのメソッドをすべて表示するにはスペースがかかりすぎますが、1 つあれば十分です。

}

複数のメソッドを呼び出すためにマルチキャスト デリゲートが使用されていると聞いたことがありますが、それらを正しく使用する方法や、それが最善の方法であるかどうかさえわかりません。おすすめは?