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