vb6 -inet angs- 여러 형태 인스턴스
-
19-09-2019 - |
문제
내 앱 상태는 다음과 같습니다.
목적 - 인터넷 접근 방식에서 여러 목록 파일 다운로드 - 간단한 "다운로드 양식"을 생성했습니다. 잠시 후, 나는 다운로드 할 파일 목록이 둘 이상 있었기 때문에 더 많은 양식이 필요했습니다. 내 프로젝트에 mdiform을 추가하여 버튼을 추가하여 다른 "다운로드 양식"인스턴스를 만듭니다. 분명히 내 문제가 해결되었습니다. 하지만 :(
Form-Instance3에서 "다운로드"버튼을 누르면 다른 양식 인스턴스 (2 및 1)는 폼-인스턴스 3이 모든 다운로드를 종료 할 때까지 내용을 다운로드 할 때 매달립니다 (때때로 타임 아웃을 얻습니다). 다른 형태. 따라서 내 앱이 다중 스레드가 아니라는 것을 알고 있지만 동일한 형식의 여러 인스턴스가 충돌 중이며 (아마도 구성 요소) 여러 파일을 동시에 다운로드 할 수 없습니다. INET 및 내 다운로드 기능은 양식으로 정의됩니다.
이것을 해결하기 위해 무엇을 할 수 있습니까? 여러 파일을 동시에 다운로드하려면 어떻게해야합니까?
많은 감사합니다
편집하다:
"wqw"제안을 사용하려고 노력하고 있지만 몇 가지 문제에 직면 해 있습니다. 다운로드 _form에는 2 개의 열이있는 mshflexgrid가 있습니다. 하나는 URL이 있고 다른 하나는 파일 데스티니가 있습니다. 나는 파일을 다운로드하고 저장하기 위해 모든 행을 던지고 있었다. "WQW"가 제안한 접근 방식을 사용하면 그리드에 표시된 올바른 이름으로 저장할 수 있도록 각 다운로드를 어떻게 구별 할 수 있습니까?
해결책
실제 HTTP 다운로드에 무엇을 사용하십니까? 나는 시도 할 것이다 간단한 비동기 다운로드 그리고 mdiform을 잊어 버리십시오. 진짜!
다른 팁
VB6은 그 자체로 단일 스레드입니다. 따라서 다른 양식으로 다운로드하는 것은 도움이되지 않습니다.
내가 과거에 사용한 것은입니다 타이머 개체 An과 함께 ActiveX Exe. 이 접근법을 사용하면 모든 다운로드 논리를 한 곳에 현지화하고 일반 객체를 제어하고 별도의 EXE로 실행되므로 기본적으로 멀티 스레드가됩니다.
그래서 이것이 작동하는 방식은 다음과 같습니다.
- ActiveX EXE 객체에서 다운로드 방법을 호출합니다.
- 다운로드 방법에서는 타이머를 인스턴스화하고 거의 즉시 시작됩니다.
- 다운로드 방법을 벗어나서 호출 한 엔티티에 제어를 제공합니다.
- 그런 다음 이벤트를 통해 기본 앱으로 다시 통신합니다 (예 : DownloadProgress 또는 DownloadComplete 등).