나는 서로 독립적 인 몇 가지 메서드가 있는데, 동시에 동시에 실행할 수있는 가장 좋은 방법은 무엇인지 궁금합니다. 나는 아래의 방법을 시도하고 각각 하나씩 시간을 정해 놓은 것처럼 보였으므로 내가 잘못된 것을하고 있는지 확신 할 수 없다 ...?동시에 여러 메서드 실행
또한 웹 응용 프로그램이며 사용자가 단추를 클릭하면 메서드가 호출됩니다. C 번호, 영문
method1(var1, var2, var3); // takes 5 seconds to run
method2(var1, var2, var3); // takes about 1-2 seconds to run
첫 시도 :
//Entered my methods one right after another
method1(var1, var2, var3);
method2(var1, var2, var3);
//timed the execution and overall took ~5-6 seconds to run and display results
번째 시험 :
//used Google and found something called Parallel
Parallel.Invoke(() =>
{
method1(var1, var2, var3);
},
() =>
{
method2(var1, var2, var3);
});
//~5-6 seconds to run and display results
번째 시행 (1/3 유사)
//used Google and found something called Tasks
Task task1 = Task.Factory.StartNew(() => method1(var1, var2, var3));
Task task2 = Task.Factory.StartNew(() => method2(var1, var2, var3));
Task.WaitAll(task1, task2);
//~5-6 seconds to run and display results
넷째 시험 :
//used Google and found something called Tasks
Task[] tasks = new Task[2]
{
Task.Factory.StartNew(() => method1(var1, var2, var3)),
Task.Factory.StartNew(() => method2(var1, var2, var3))
};
Task.WaitAll(tasks);
//~5-6 seconds to run and display results
모든 조언이나 도움을 주시면 대단히 감사하겠습니다. 감사!
감사합니다. 나는 또한 "method2"가 실행되기까지 걸리는 시간이 짧기 때문에 "method1"전에 화면에 "method2"가 표시 될 것을 기대하고 있다고 생각했습니다. 그러나 일어나는 일은 두 결과가 수동으로 계산되는 5-6 초 후에 동시에 화면에 표시된다는 것입니다. – Jayarikahs
@ Jayarikahs 각 방법 내에서 개별적으로 결과를 인쇄하고 있습니까? 아니면 호출 코드에서,'Task.WaitAll' 후에? – dcastro
각 메서드 내에서 데이터를 고유 한 gridview에 바인딩하므로 각 개별 메서드 내에서 결과가 나옵니다. – Jayarikahs