2015-01-31 5 views
1

실행해야 할 몇 가지 메서드가 있는데, 그 중 하나는 다른 스레드로 실행해야하므로 다음 메서드를 시작하려는 경우에도 람다를 사용하여 Task.Run을 사용합니다. 작업 완료 후 내가 LastJob()MoreWork() 후 시작하려면 예를 들어완료 될 때까지 Task.Run 메서드를 차단하십시오.

이 수행됩니다

public void DoSomeWork() 
{ 
    Task.Run(() => MoreWork()); 
    LastJob(); 
} 
+0

'Task'의'ContinueWith' 메소드 또는'async'와'await' 키워드에 대해 읽을 수 있습니다. 멋진 동영상 [여기] (https://www.youtube.com/watch?v=MCW_eJA2FeY) – SimpleVar

답변

1

당신이 link

public async void DoSomeWork() 
{ 
    await Task.Run(() => MoreWork()); 
    LastJob(); 
} 
+0

와우, 정말 고마워 !!! –

+1

'비동기 태스크 (async Task)'를 사용하십시오. –

+0

문제 없습니다. 개미 P는 무효 문제는 무엇입니까? 어쨌든 –

0

까탈이처럼 ContinueWith 방법을 사용할 수 asyncawait 키워드 을 사용할 수 있습니다 :

public void DoSomeWork() 
{ 
    var task = Task.Run(() => MoreWork()); 
    task.ContinueWith(() => LastJob()) ; 
} 
관련 문제