【发布时间】:2010-07-21 14:50:45
【问题描述】:
阅读this article我发现了几种调用方法的方法。
调用方法:
public static void SendData(string value) { }
来电:
delegate void MyDelegate(string value);
//Slow method - NOT RECOMMENDED IN PRODUCTION!
SendData("Update");
// Fast method - STRONGLY RECOMMENDED FOR PRODUCTION!
MyDelegate d = new MyDelegate(SendData);
d.BeginInvoke("Update", null, null);
这是真的吗?是不是更快?
Action send = () => Send("Update");
send();
或者这个?
我需要将一个方法调用到具有最高性能的 SQL CLR 触发器中,因此即使是很小的速度提升也是有意义的。
【问题讨论】:
-
如果你仔细想想,不让直接方法调用最快的方法调用方法的原因是什么? CLR 针对常见情况(直接方法调用)进行了大量优化。让委托调用比直接方法调用更快是没有意义的。
-
为什么不加评论就投反对票??
标签: c# .net delegates lambda method-call