我继承了一些我想在这里理解的主要意大利面条代码(组合 C#/VB)。
这似乎是一个非常奇怪的情况,其中有两个连续调用来触发远程对象的事件,这是通过调用委托的 DynamicInvoke 方法来完成的,形式如下:
delegate1.DynamicInvoke(args1);
// some code here
delegate2.DynamicInvoke(args2);
delegate1 和 delegate2 都引用同一个远程“订阅者”对象中的方法。
根据我在文档中可以阅读的所有内容,DynamicInvoke 看起来应该是同步的。但是我可以看到,当我在远程进程中设置断点时,delegate1 和 delegate2 引用的方法在不同的线程中同时运行。
这是另一个微软“未记录的功能”吗?我应该预料到这一点吗?关于为什么会这样的任何解释?如果它打算异步运行,DynamicInvoke 怎么会有返回值呢?
谢谢!绍尔