稍后呼叫代表又名。委托队列

时间:2012-04-07 19:24:58

标签: c# delegates dynamic-invoke multicastdelegate

所以我对c#很陌生,我遇到了这个问题: 我有一些方法可以调用不同的委托(可能有不同的参数类型)。但是不应该立即打电话给这些代表。如果主线程正在运行一个委托,它们应该在之后运行,有点像排队代表并稍后运行它。
现在我可以使用DynamicInvoke,但我不知道它是否会减慢队列的速度,除了我知道委托类型是什么以及它应该寻找什么样的参数,所以它不是真正的运行时依赖。 如果可以,请帮帮我,我真的需要答案。

谢谢大家(谁回应)

2 个答案:

答案 0 :(得分:1)

其中一种方法是使用Tasks(从.NET 4.0开始)

可以查看

Asynchronous methods, C# iterators, and Tasks

如何创建计划任务,例如,在您的情况下。

希望这有帮助。

答案 1 :(得分:1)

如果不是直接添加代理,而是包装它们放入新的Action委托中,只是调用它们,传递所有参数,它会起作用吗?例如:

List<Action> pending = new List<Action>();
pending.Add(() => MethodThatTakesNoParameters());
pending.Add(() => MethodThatTakesOneParameter(param));
pending.Add(() => MethodThatTakesThreeParameters(param1, param2, param3));