C#에서 작업을 사용하는 것에 대해 this article을보고 있었는데 누군가가 나를 위해 정리할 수 있다면 방황하고 있었습니까?
주 스레드가 작업을 마칠 때까지 기다려야하므로 주 스레드가 멈추지 않기 때문에 작업 생성시 목적을 달성하지 못합니다.
그러나 나는 기다림이 곧바로 호출되지 않을 것이라고 생각하고 있습니다. 그래서 지금은 언제 전화 할 것인가, 아니면 어떻게하면 다른 일을 처리해야 하는지를 알 것입니다. 우리는이 같은 간단한 경우를 가정 :C# 작업 대기 및 폐기
void MyFunction()
{
Task t = Task.Factory.StartNew(() => { System.Threading.Thread.Sleep(5000); });
}
당신은 바로 메인 스레드가 여전히 좀로부터 목적을 패배 다른 작업을 수행 할 수있는 전에 5 초 대기) t.Wait를 (호출하는 경우 사용자 시점, 그들은 5 초 동안 아무 것도 할 수 없을 것입니다. 5 초 후에 작업이 완료되었음을 어떻게 알 수 있습니까? 그리고 당신은 t를 처분 할 수 있습니까? 그 올바른 취급 방법은 무엇입니까?
죄송합니다 질문 :(정말 순진 경우 감사합니다 모든 : D
Ahhh 사실 : D 감사 : D는 또한 C# GC가 작업을 처리하고 정리하는 것을 의미합니다. .Dispose()를 호출 할 필요가 없습니다. – Heinrich
@Heinrich : 작업에서 이벤트 핸들을 사용하지 않으면 'Dispose'호출에 대해 걱정할 필요가 없습니다. http://stackoverflow.com/questions/3734280/is-it-considered-acceptable을 참조하십시오. -to-not-call-dispose-on-a-tpl-task-object – BrokenGlass
고맙습니다. D – Heinrich