سؤال

هنا حالة التطبيق الخاص بي:

الغرض - قم بتنزيل ملفات قائمة متعددة من نهج الإنترنت - تم إنشاء "نموذج تنزيل" بسيط.وبعد فترة، كنت بحاجة إلى المزيد من النماذج لأنه كان لدي أكثر من قائمة ملفات لتنزيلها.لقد قمت بحل هذه المشكلة عن طريق إضافة نموذج MDI إلى مشروعي، وإضافة زر لإنشاء مثيل "نموذج تنزيل" آخر وها أنت ذا.على ما يبدو، تم حل مشكلتي.لكن لا :(

عندما أضغط على زر "تنزيل" في مثيل النموذج 3 الخاص بي، تتوقف مثيلات النموذج الأخرى (2 و1) عن تنزيل المحتويات (أحصل على مهلة أحيانًا) حتى ينهي مثيل النموذج 3 جميع التنزيلات وهكذا، للجميع الأشكال الأخرى.لذلك، على الرغم من أنني أعلم أن تطبيقي ليس متعدد الخيوط، فإن المثيلات المتعددة لنفس النموذج متعارضة (مكون Inet، على الأرجح) ولا يمكنني تنزيل ملفات متعددة في نفس الوقت.يتم تعريف Inet ووظيفة التنزيل الخاصة بي في النموذج.

ماذا يمكنني أن أفعل لحل هذا؟كيف يمكنني تنزيل ملفات متعددة في نفس الوقت؟

تشكرات

يحرر:

أحاول استخدام اقتراح "wqw"، لكني أواجه بعض المشاكل:في نموذج download_form، لدي MSHFlexgrid، مع عمودين:أحدهما بعنوان URL والآخر بمصير الملف.كنت أكرر رمي جميع الصفوف لتنزيل الملفات وحفظها.باستخدام الطريقة التي يقترحها "wqw"، كيف يمكنني تمييز كل تنزيل حتى أتمكن من حفظه بالاسم الصحيح المشار إليه في الشبكة؟

هل كانت مفيدة؟

المحلول

ماذا تستخدم لتنزيل HTTP الفعلي؟ سأحاول بسيطة التنزيلات غير المتزامنة ونسيان mdiform. حقا!

نصائح أخرى

VB6، بمفرده، ذو خيط واحد.لذا فإن تقسيم التنزيل إلى نماذج مختلفة لن يساعدك.

ما استخدمته في الماضي هو كائن الموقت بالتزامن مع اكتف اكس.سيمنحك هذا الأسلوب القدرة على توطين كل منطق التنزيل في مكان واحد، والتحكم فيه كما تتحكم في كائن عادي وتشغيله في ملف EXE منفصل، مما يجعله متعدد الخيوط بشكل افتراضي.

وبالتالي فإن الطريقة التي يعمل بها هذا هي كما يلي:

  1. يمكنك استدعاء أسلوب التنزيل على كائن ActiveX EXE
  2. في طريقة التنزيل، يمكنك إنشاء مثيل للمؤقت وتشغيله على الفور تقريبًا.
  3. تخرج من طريقة التنزيل، وبالتالي تعيد التحكم للكيان الذي أطلق عليها.
  4. ثم تتصل مرة أخرى بالتطبيق الرئيسي عبر الأحداث (على سبيل المثال:تقدم التنزيل أو اكتمل التنزيل، وما إلى ذلك...)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top