У меня есть список методов и их нужно распараллелить. Как это сделать на C#? Я вижу, что существует пространство имен Parallel? Как его использовать?C# - Как параллельно для каждого из списка методов?
method1()
method2()
method3()
method4()
У меня есть список методов и их нужно распараллелить. Как это сделать на C#? Я вижу, что существует пространство имен Parallel? Как его использовать?C# - Как параллельно для каждого из списка методов?
method1()
method2()
method3()
method4()
Parallel.Invoke метод:
Parallel.Invoke(
() => method1(),
() => method2(),
() => method3(),
() => method4()
)
Добавить пространство имен System.Threading.Tasks
Вы можете создать список Action
делегата, где каждый делегат представляет собой вызов данного метода:
List<Action> actions = new List<Action>
{
method1,
method2,
method3
};
И затем используйте Parallel.ForEach
, чтобы позвонить им в p Параллельно:
Parallel.ForEach(actions, action => action());
Он все еще застревает во время вызова их? Я не знаю почему? –
@ Hanaa 'Parallel.Invoke' будет ждать, пока все методы будут завершены. Если вам нужно запустить их и пойти дальше, используйте 'Task.Run (() => method1())' – Backs
Пожалуйста, не могли бы вы это проверить? http://stackoverflow.com/questions/39555945/parallelize-minimize-time-reading-number-of-sheets-from-excel-file –