웹에서 수집 한 데이터 중 일부를 Windows 형태로 표시하는 앱을 만들고 있습니다. 모든 데이터를 다운로드하기 전에 순차적으로 기다려야합니다. 제한된 대기열 (최대 동시 작업 실행)에서 병렬로 수행하여 다운로드하는 동안 Dataagridview를 새로 고치는 방법을 보여줄 수 있습니까?인터넷에서 리소스를 다운로드하고 C# (winforms)로 즉시 (동시에 최대 동시 작업으로)보고 할 수 있습니다.
는 내가 오늘이 것은 내가 foreach는 (에 넣어하는 방법
internal async Task<string> RequestDataAsync(string uri)
{
var wb = new System.Net.WebClient(); //
var sourceAsync = wb.DownloadStringTaskAsync(uri);
string data = await sourceAsync;
return data;
}
)이며 종료 후, 사용자 정의 개체의 목록에 데이터를 구문 분석, 다음의 DataTable에 해당 객체를 변환하고 바인딩 그게 datagridview.
가장 좋은 방법은 https://msdn.microsoft.com/library/system.threading.tasks.taskscheduler.aspx에있는 LimitedConcurrencyLevelTaskScheduler를 사용하고 있는지 (리소스가 다운 될 때마다 어떻게 그리드에보고 할 수 있는지 잘 모르겠 음) 잘 모르겠습니다. 그렇지 않은 경우 가장 좋은 방법이 있습니다.
동시에 모든 작업을 시작하고 싶지 않을 때가 있습니다. 때때로 내가 동시에 100 개 다운 라이트를 요청할 수 있기 때문에 동시에 최대 10 개의 작업을 실행하는 것이 좋습니다.
나는 그것이 동시 작업을 제어하고 다운로드하는 동안보고하는 것이지만 현재는 무엇이 최선인지를 잘 모르는 질문입니다.
정말 고마워요, 정말 스레딩, 동시성, 비동기/대기에 대한 지난 이틀 동안 읽고 있었고 여전히 모든 부분을 올바르게 풀링 할 수 없었습니다. 더 잘 이해할 수 있도록 책을 가져올 것입니다. 이제이 문제를 테스트해야합니다. 코드 및 그 일을 할 경우 참조하십시오 :) 빠른 대답 주셔서 감사합니다, 당신은 바위 – FabianSilva