파일 컬렉션이 있으며이를 병렬로 처리해야합니다. 처리에는 최종 단계로 각 파일을 FTP 서버에 업로드하는 작업이 포함됩니다. Parallel.ForEach, 동시 연결을 제한하십시오.
Parallel.ForEach(files, options, ProcessFile);
가 나는 초과하지 않을 것이다
Parallel.ForEach
ParallelOptions options = new ParallelOptions { MaxDegreeOfParallelism = 2 };
에 전달하여 보장합니까 : 해당 서버의 동시 연결의 수는이 같은 Parallel.Foreach()
를 사용하여 2로,의 말을하자, 제한된다 허용 된 연결 수? Parallel.ForEach
의 작동 방식에 대해 많은 내용을 읽었지만 여전히 확실하지 않습니다. 내가 FTP 서버의 유일한 사용자이고 모든 연결이 ProcessFile
동안 제대로 닫힌 경우를 생각해 봅니다.
연결 제한 : 총 * 연결 수는 얼마입니까? 또는 "호출 노드 당"연결입니까? 전자의 경우, 다른 곳에서는 실행되지 않는 것이 확실해야합니다. 후자의 경우에도이 작업 *을 한 번에 두 번 응용 프로그램에서 수행 할 수 있는지 여부를 알아야합니다. –
@MarcGravell Total. 각 통화는 파일이 업로드 된 후 새 연결을 열고 닫습니다. –
내 포인트 ("전체") : 귀하의 응용 프로그램이 하나의 노드에서만 실행되고 있다는 것을 알고 계십니까? –