문제

내 앱 상태는 다음과 같습니다.

목적 - 인터넷 접근 방식에서 여러 목록 파일 다운로드 - 간단한 "다운로드 양식"을 생성했습니다. 잠시 후, 나는 다운로드 할 파일 목록이 둘 이상 있었기 때문에 더 많은 양식이 필요했습니다. 내 프로젝트에 mdiform을 추가하여 버튼을 추가하여 다른 "다운로드 양식"인스턴스를 만듭니다. 분명히 내 문제가 해결되었습니다. 하지만 :(

Form-Instance3에서 "다운로드"버튼을 누르면 다른 양식 인스턴스 (2 및 1)는 폼-인스턴스 3이 모든 다운로드를 종료 할 때까지 내용을 다운로드 할 때 매달립니다 (때때로 타임 아웃을 얻습니다). 다른 형태. 따라서 내 앱이 다중 스레드가 아니라는 것을 알고 있지만 동일한 형식의 여러 인스턴스가 충돌 중이며 (아마도 구성 요소) 여러 파일을 동시에 다운로드 할 수 없습니다. INET 및 내 다운로드 기능은 양식으로 정의됩니다.

이것을 해결하기 위해 무엇을 할 수 있습니까? 여러 파일을 동시에 다운로드하려면 어떻게해야합니까?

많은 감사합니다

편집하다:

"wqw"제안을 사용하려고 노력하고 있지만 몇 가지 문제에 직면 해 있습니다. 다운로드 _form에는 2 개의 열이있는 mshflexgrid가 있습니다. 하나는 URL이 있고 다른 하나는 파일 데스티니가 있습니다. 나는 파일을 다운로드하고 저장하기 위해 모든 행을 던지고 있었다. "WQW"가 제안한 접근 방식을 사용하면 그리드에 표시된 올바른 이름으로 저장할 수 있도록 각 다운로드를 어떻게 구별 할 수 있습니까?

도움이 되었습니까?

해결책

실제 HTTP 다운로드에 무엇을 사용하십니까? 나는 시도 할 것이다 간단한 비동기 다운로드 그리고 mdiform을 잊어 버리십시오. 진짜!

다른 팁

VB6은 그 자체로 단일 스레드입니다. 따라서 다른 양식으로 다운로드하는 것은 도움이되지 않습니다.

내가 과거에 사용한 것은입니다 타이머 개체 An과 함께 ActiveX Exe. 이 접근법을 사용하면 모든 다운로드 논리를 한 곳에 현지화하고 일반 객체를 제어하고 별도의 EXE로 실행되므로 기본적으로 멀티 스레드가됩니다.

그래서 이것이 작동하는 방식은 다음과 같습니다.

  1. ActiveX EXE 객체에서 다운로드 방법을 호출합니다.
  2. 다운로드 방법에서는 타이머를 인스턴스화하고 거의 즉시 시작됩니다.
  3. 다운로드 방법을 벗어나서 호출 한 엔티티에 제어를 제공합니다.
  4. 그런 다음 이벤트를 통해 기본 앱으로 다시 통신합니다 (예 : DownloadProgress 또는 DownloadComplete 등).
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top