2011-09-18 2 views
1

최근에 WinRT에서 .Net을 대체하는 프레임 워크에서 50 밀리 초 이상 실행될 수있는 모든 함수가 비동기 적으로 구현된다는 것을 읽었습니다. 그래서 제 질문은 일반적인 원칙으로 적용하는 것이 맞습니까? 어쨌든 멀티 스레딩을 많이 필요로하는 프로젝트에서 작업한다고 가정하면 ...함수를 비동기 적으로 작성해야하는지 여부를 결정하는 방법

+0

일반적으로 그렇습니다. UI 스레드를 차단하는 비동기 코드에서 너무 많은 시간을 소비하면 런타임에서 프로그램을 중단합니다. 마감 시간은 15 초입니다. –

답변

0

범용 애플리케이션에서는 아니요.

귀하는 해당 진술에 대한 링크를 제공하지 않으므로 그래픽 사용자 인터페이스에만 적용된다고 가정합니다. 이 경우 장기 실행 기능으로 인해 응용 프로그램이 응답하지 않게되고 (GUI의 경우 50ms가 "장기 실행"으로 간주 될 수 있기 때문에) 이해할 수 있습니다.

다른 응용 프로그램에서는 응용 프로그램의 다른 함수와 관련하여 정렬되도록 함수의 결과를 조정해야합니다. 이 작업을 수행하는 데 필요한 노력과 이로 인한 유지 관리 비용은 사소하지 않습니다.

+0

작업 프레임 워크를 사용하면 비동기 함수를 쉽게 조정하여 문제가되는 모든 경우 (즉, 데이터 종속성이있는 경우) 다른 함수와 관련하여 정렬되도록 할 수 있습니다. - 비동기 함수가 완료 될 때까지 기다렸다가 결과를 읽을 필요가있는 경우 , 당신은 그것을 호출하고 반환 된 작업에 연속을 구독합니다. –

관련 문제