F #이 나오면 비동기/병렬 프로그래밍 영역에 재물이 생길 것입니다. answer to this question은 Tasks, Parallel LINQ 및 Reactive Framework 간의 차이점을 설명하는 데 상당히 도움이되지만, 비동기 워크 플로가 어떻게 그림에 정확하게 들어 있는지 궁금합니다.F # : Asynch and Tasks and PLINQ, 이런!
제가 틀렸다면 제발 정정 해주십시오.하지만 asynch workflow가 IO 바인딩 작업, 특히 AsynchXxx 메서드가 정의 된 작업을 수행하는 가장 쉬운 방법이되거나 BeginXxx/EndXxx 무늬. 또 다른 장점은 비동기 워크 플로를 구성 할 수 있으며 다른 asynch 워크 플로를 통해 구축 할 수 있다는 점입니다. 이는 프로그램 구성 방식의 유연성을 크게 높일 수 있습니다.
내가 도움이 필요한 것은 F # 코드에서 비동기 워크 플로우에 대한 작업 또는 PLINQ를 어떤 상황에서 선택하는지 이해하는 것입니다. 필자는 작업 병렬 라이브러리가 코어를 통한로드 균형을 조정하는보다 정교한 방법을 가지고 있다고 읽었습니다. 그것이 사실이라면, 작업은 병렬로 작동해야하는 순수한 CPU 바운드 작업에 더 나은 선택 일 수 있습니다. 반면 PLINQ는 주로 시퀀스와 함께 작동하는 기존 코드를 병렬화하는 편리한 방법 인 것으로 보입니다.
마지막으로, 각 방법의 강점에 대한 나의 이해가 맞다면, 그것을 결합하는 것이 항상 가능할까요? 예를 들어 비동기 워크 플로에서 일련의 작업을 작성한 다음 실행 전에 작업으로 변환 할 수 있습니다. 그게 가능하다면 - 또는 좋은 아이디어.
흠, Async.StartAsTask와 Async.AwaitTask로 뭔가를 할 수 있다고 확신합니다. – gradbot