所以我很新的C#和我繞過這個問題: 我有一些方法調用不同的代表(具有可能不同的參數類型)。但是,這些代表不應該立即致電。如果主線程正在運行一個委託,它們應該在之後運行,就像排隊委託並稍後運行一樣。
現在我可以使用DynamicInvoke,但我不知道它是否會減慢隊列的速度太慢,除了我知道委託類型是什麼以及它應該查找哪種參數,所以它不是真正的運行時相關的。 請幫助我,如果可以的話,我真的需要一個答案。稍後再打電話給代表。委託隊列
謝謝大家(誰迴應)
所以我很新的C#和我繞過這個問題: 我有一些方法調用不同的代表(具有可能不同的參數類型)。但是,這些代表不應該立即致電。如果主線程正在運行一個委託,它們應該在之後運行,就像排隊委託並稍後運行一樣。
現在我可以使用DynamicInvoke,但我不知道它是否會減慢隊列的速度太慢,除了我知道委託類型是什麼以及它應該查找哪種參數,所以它不是真正的運行時相關的。 請幫助我,如果可以的話,我真的需要一個答案。稍後再打電話給代表。委託隊列
謝謝大家(誰迴應)
的方法之一是做,可能是使用的Tasks
(從.NET 4.0
開始)
會對
Asynchronous methods, C# iterators, and Tasks
怎麼看創建調度任務,就像你的情況一樣。
希望這會有所幫助。
如果不是直接添加您的代表,而是將包裝成到代表只是調用它們,傳遞所有參數的新Action
委託,它會起作用嗎?例如:
List<Action> pending = new List<Action>();
pending.Add(() => MethodThatTakesNoParameters());
pending.Add(() => MethodThatTakesOneParameter(param));
pending.Add(() => MethodThatTakesThreeParameters(param1, param2, param3));
我想你可以用無擴展庫做到這一點:http://msdn.microsoft.com/en-us/data/gg577609 – 2012-04-07 19:26:22