내가 x 초에서 함수, this 같은 그 무언가를 시작하는 방법을 알고 :매 x 초마다 여러 기능을 동시에 시작 하시겠습니까?
private Timer timer1;
public void InitTimer()
{
timer1 = new Timer();
timer1.Tick += new EventHandler(timer1_Tick);
timer1.Interval = 2000; // in miliseconds
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
function1();
function2();
function3();
}
여기서 문제 : 기능을 동시에 실행할 수 없습니다. Function2
은 Function1
이 완료된 경우에만 실행할 수 있습니다. 그러나 나는 그들이 동시에 달리고 싶다. 그게 내가 할 수있는 이유 :
private void timer1_Tick(object sender, EventArgs e)
{
Parallel.Invoke(
() => Function1(),
() => Function2(),
() => Function3()
);
}
이것이 C#에서 할 가장 현명한 방법인가요? Parallel.Invoke
으로 이해할 수없는 것 : 타이머가 5 초로 설정되어 있고 5 초 후 function1,2,3이 완료되지 않았지만 모두 다시 호출하면 어떻게됩니까? 스레드에서 이러한 기능을 시작합니까? function1() (동시에)을 실행하는 x-threads를 호출 한 후 있습니까? 궁금증은 정말 건강합니다.
누군가가 더 많은 정보를 얻을하려는 경우 : function1
는 그냥 거기에 B 폴더 A에서 X 파일을 복사하는 것입니다, function2
은 폴더 B에서 모든 파일을 읽고 정보를 저장 만 존재하고 function3
가를 확인 만이 연결이 있고 연결이있는 경우 해당 파일을 누군가에게 보냅니다.
코드에 대한 제안 사항은 무엇입니까? 고마워요
parrallel 실행은 직렬 실행의 반대입니다. 첫 번째 예가 무엇이 잘못 되었습니까? – asawyer
http://www.albahari.com/threading/threading.pdf –
마지막 단락을 기반으로하여, 3과 같은 소리가 들리므로 파일을 병렬로 실행하고 싶지 않은 것 같습니다. 2는 파일 식별에 의존하고 2는 파일 이동에 따라 달라집니다. 정확합니까? – Omaha