UXDE dot Net Wordpress Themes

c# 병렬 처리 예제

이제 콜백이있는 작업을 설정하여이 두 가지 메서드를 호출 할 수 있습니다. 이 예제에서는 작업 팩터리를 사용합니다. 함수의 여러 반복을 수행하려는 경우 Parallel.For 메서드를 사용할 수 있습니다. 예제를 살펴보겠습니다. 이 예제에서는 Parallel.ForEach 루프를 사용하여 모든 System.Collections.IEnumerable 또는 System.Collections.Generic.IEnumerable 데이터 원본에 대한 데이터 병렬 처리기능을 활성화하는 방법을 보여 주며 있습니다. TaskFactory.StartNew 메서드를 사용하여 한 작업에서 작업을 만들고 시작할 수도 있습니다. 생성 및 스케줄링을 분리할 필요가 없고 추가 작업 생성 옵션이 필요하거나 특정 스케줄러를 사용해야 하거나 Task.AsyncState를 통해 검색할 수 있는 작업에 추가 상태를 전달해야 하는 경우 이 메서드를 사용합니다. 다음 예제와 같이 속성입니다. 다음 예제에서는 간단한 그림을 제공합니다. TargetFrameworkAttribute 특성을 사용하여 .NET Framework 4.6을 대상으로 하고 앱의 현재 문화권이 프랑스어(프랑스) 또는 프랑스어(프랑스)가 이미 현재 문화권인 경우 영어(미국)로 변경합니다. 그런 다음 새 문화에서 통화 값으로 서식이 지정된 일부 숫자를 반환하는 formatDelegate라는 대리자를 호출합니다.

대리자가 동기적으로든 비동기적으로든 작업이든 호출 스레드의 문화권이 비동기 태스크에 의해 상속되기 때문에 예상된 결과를 반환합니다. 모바일 프로그래밍에서는 평행선을 생각의 최전선에 두어야 합니다. 왜? 모바일 플랫폼은 한 번에 하나의 응용 프로그램에 즉시 액세스할 수 있으므로 장치의 독점을 피해야 합니다. 위의 예에서 parentTask 및 childTask는 서로 독립적입니다. 상위 작업은 자식 작업이 완료될 때까지 기다리지 않습니다. parentTask.wait 메서드는 parentTask가 완료될 때까지만 기다립니다. 응용 프로그램을 여러 번 실행하면 다른 결과를 얻을 수 있습니다. 위의 예제의 출력은 다음과 같습니다: 작업에서 실행 중인 사용자 코드가 새 작업을 만들고 AttachedToParent 옵션을 지정하지 않으면 새 작업이 특별한 방식으로 상위 작업과 동기화되지 않습니다. 동기화되지 않은 이 유형의 작업을 분리된 중첩 작업 또는 분리된 자식 작업이라고 합니다. 다음 예제에서는 분리된 자식 작업을 하나 만드는 작업을 보여 준다. 작업에서 결과를 얻으려면 Task 관심 있어야 하는 클래스가 됩니다. 작업 T는 반환될 데이터 형식을 나타냅니다.

예를 들어 TPL에는 병렬 및 순차적 시나리오모두에서 유용한 몇 가지 새 공용 형식이 있습니다. 여기에는 System.Collections.Concurrent 네임스페이스의 여러 스레드 안전, 빠르고 확장 가능한 컬렉션 클래스 및 System.Threading.Semaphore 및 System.Threading.ManualResetEventSlim과 같은 몇 가지 새로운 동기화 유형이 포함됩니다. 특정 종류의 워크로드에 대해 이전 버전보다 효율적입니다. .NET Framework 4의 다른 새 형식(예: System.Threading.Barrier 및 System.Threading.SpinLock)은 이전 릴리스에서 사용할 수 없었던 기능을 제공합니다. 자세한 내용은 병렬 프로그래밍용 데이터 구조를 참조하십시오. Parallel.Invoke 메서드는 임의의 문을 동시에 실행할 수 있는 편리한 방법을 제공합니다.