2012-07-01 3 views
-1

저는 Microsoft 동시성 런타임 (및 일반적으로 비동기 프로그래밍)을 처음 사용하고 있으며,이를 통해 수행 할 수있는 작업과 수행 할 수없는 작업을 이해하려고합니다. 작업이 추가 된 순서대로 실행되고 이전 작업이 끝날 때까지 작업이 시작되지 않도록 작업 그룹을 만들 수 있습니까?동시성, 작업

단일 구성원 함수 내에서 여러 작업을 연결하는 것보다 작업을 처리하는 데 더 일반화되고 양도 된 방법이 있는지 이해하려고합니다. 예를 들어, 프로그램의 여러 지점에서 자원을 만드는 프로그램과 자원이 할당되는 순서가 중요하다고 가정 해 봅시다. 호출 된 자원 할당 기능은 중앙 작업 목록의 끝에 작업을 추가하기 만하면 추가 된 순서 (즉, 자원 할당 기능이 호출 된 순서)로 작업이 실행됩니다.

감사합니다,

RobertF

+0

실제 질문은 무엇입니까? 당신이 무엇을 요구하고 있는지 분명하지 않습니다. –

+0

내가 틀릴 수도 있지만 작업 그룹 (Concurrency :: task_group 클래스)을 이해하면 작업이 서로 독립적으로 실행된다는 것이 었습니다. 추가 된 다섯 번째 작업은 추가 된 첫 번째 작업보다 먼저 완료 될 수 있습니다. 나는 (n-1) 번째가 끝나기 전에 n 번째 작업이 시작되지 않도록하는 방법이 있는지 알아 내려고했습니다. – RobertF

+0

"작업"을 직렬화 하시겠습니까? 왜 단일 쓰레드 코드를 사용하지 않는가? –

답변

0

난 당신이 Agent 또는 Actor model을 찾고, 당신이 달성하기 위해 노력하고 이해 모르겠지만,?

메시지를 Async Agent에 게시하고 처리합니다. 그런 다음 다른 상담원에게 메시지를 보낼 수 있습니다.