问题标签 [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 模式的概念/理解是一组可以像乐高积木一样组合/重新排列的方法。所以你可能有以下方法:

...可以混合搭配/乐高积木在一起,所以有一天早上你打电话给:

...另一个早晨:

...另一个早晨:

(etc. &c. ad infinitum ad nauseum)

而且由于多播委托允许您向委托的实例添加相同签名的方法,并且它们将按照您添加它们的顺序触发,因此这里似乎存在语义联系(在我看来/我目前的思维方式,反正)。不过,我可能错了,这就是我问的原因。

0 投票
3 回答
9332 浏览

c# - 多播委托的返回类型必须为 void。为什么?

Multicast Delegates 的返回类型必须为 void 否则会抛出异常。

我想知道它背后的原因是什么,如果多个方法可以具有与委托相同的返回类型怎么办?

0 投票
1 回答
673 浏览

castle-windsor - 温莎城堡设施与 Nancy Windsor Bootstrapper 配合得不好

我在尝试从 Nancy 0.7 升级到 0.12 时遇到了一个奇怪的问题。以前我正在注册一个工具来为我的引导程序中的所有服务进行日志记录:

LoggingFacility 如下所示:

不幸的是,自从升级到 0.12/Castle 3.1 后,以下行WindsorNancyBootstrapper.RegisterTypes导致了一些问题

基本上,Castle 试图围绕 Func 创建一个动态代理。如果此注册触发了我的设施订阅的事件,这会很好,但它不会。然而拦截器似乎已经注册了。

尝试创建代理时,它显然失败了,因为 MulticastDelgate(IL 的 Func<> 的父级)被密封:TypeLoadException 无法从程序集 'DynamicProxyGenAssembly2,Version=0.0.0.0,Culture=neutral 加载类型'Castle.Proxies.Func`1Proxy' , PublicKeyToken=a621a9e7e5c32e69' 因为父类型是密封的。

我不确定在这里做什么,有人对设施和南希 0.12 有任何经验吗?

0 投票
1 回答
157 浏览

objective-c - 组播块:如何泛化

目标

我有一个具有各种属性的类,可用于插入块以接收某些事件。

在客户端代码中,我想动态地向这个属性添加/删除处理程序块,类似于 C# 中的 MulticastDelegate。

例如,我想插入,但只logger在某个方法运行时使用。插上电源后,仍应运行。-(id)initdoSomethingdoSomethinglogger

当前实施

为了维护块,我考虑使用NSMutableArray存储块的副本并将事件广播到所有已注册的块(观察者模式)。

- (id)初始化

- (void)someOtherMethod

开放式问题

该方法可以推广到具有任何参数计数/类型的块吗?这样我就可以像这样使用它:

这里的问题是类型self.object.handlervoid (^)(int, int). 因此,MulticastBlock需要模仿一个块,将它收到的任何调用转发到数组。

可以使用这里描述的技术吗?

也许拦截所有调用,为每个数组元素复制它们并分配新的调用目标?

0 投票
0 回答
228 浏览

vb.net - 将多播委托添加到 VB.NET 程序

对于一个作业,我应该编写一个程序,使用委托同时完成所有四个基本数学函数。我做到了。这是其中的代码。

现在,我被要求向该程序添加一个多播委托,该委托包含所有四个过程并使用 DynamicInvoke() 方法调用这些过程。在我的程序中如何以及在何处添加它?

0 投票
1 回答
79 浏览

c# - 软件编码中的多播委托有多有用

根据定义,多播代表的概念解释说它包含对多个函数的引用。但是在日常实践中使用的多播委托或任何真实世界的例子在哪里?

谢谢

0 投票
1 回答
639 浏览

c# - 带异步调用的多播委托

这是我的Main课程代码:

这是我的DelegateClass

由于 和 的定义idea相同WriteName,我想通过使用 BeginInvoke 和 EndInvoke 使它们成为多播委托。有人可以告诉我该怎么做。有可能吗?

0 投票
6 回答
7226 浏览

ios - Swift 语言组播委托

我正在尝试在 Swift 中实现多播委托功能。在 Objective C 中,我们有这个出色的实现

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

我刚刚创建了这个基本功能:

我的问题是我似乎无法找到一种方法来做到这一点:

为了向节点中的所有代表提供命令“testString()”。谁能帮我这个?

0 投票
0 回答
267 浏览

c# - 从单个事件调用多个方法的正确方法是什么?

我正在从图片框单击事件中调用多种颜色校正方法。问题是,有时会跳过一个方法。有时一个方法会运行两次。所以我可能没有使用最好的方法来调用我的方法。代码如下:

编辑:我收到一条评论说问题不清楚。这对我来说似乎很清楚。但万一我错了,让我澄清一下:我目前调用多种方法的方式出错了。这样做的正确方法是什么?

展示所有六种方法会占用太多空间,一种就足够了。

}

我听说多播委托被用来调用多种方法,但我不知道如何正确使用它们,或者它们是否是最好的方法。建议?