How can I run six functions in parallel, and achieve 100% CPU usage?

Viewed 99

In my application, I need to run six functions (async Task) in parallel. For some reason, I get only about 6% CPU usage. It seems like my application is using only one core of 16. How can I spread the Work of at least six cores to get the work done faster?

Here is my code:

List<Task<M1Model>> tasks = new List<Task<M1 Model>>();
tasks.Add(Task.Run(() => IdentifierUPTREND(allValues1min, tmUp1min)));
tasks.Add(Task.Run(() => IdentifierUPTREND(allValues5min, tmUp5min)));
tasks.Add(Task.Run(() => IdentifierUPTREND(allValues15min, tmUp15min)));

tasks.Add(Task.Run(() => IdentifierDOWNTREND(allValues1min, tmDown1min)));
tasks.Add(Task.Run(() => IdentifierDOWNTREND(allValues5min, tmDown5min)));
tasks.Add(Task.Run(() => IdentifierDOWNTREND(allValues15min, tmDown15min)));

var results = await Task.WhenAll(tasks);
tmUp1min = results[0];
tmUp5min = results[1];
tmUp15min = results[2];

tmDown1min = results[3];
tmDown5min = results[4];
tmDown15min = results[5];

I am looking forward to your help.

0 Answers
Related