السلام عليكم
سؤالي عن المسارب او threads
انا استعمل المسرب بالطريقة المبسطة دون ان اعمل باني جديد للتابع execute
اي بالمختصر اكتب التابع الذي عليه الرك وياخذ من المعالج الوقت اكتبه في وحدة الفورم او وحدة المسرب واستدعيه بوحدة المسرب
وذلك بعد ان اكتب في حدث معين في الفورم
TMyThread.create(false)
المهم هذه الطريقة جيدة في حالة ان العمل الموكل للمسرب واحد اي عند بدايته انشئ المسرب وعندما ينتهي انتهي من عملي!!!
انا اريد (ما زلت افكر نظريا بالمشروع اي اني لم ابدأ عمليا) لكن لأتخيل الفكرة فقط!
انا اريد ان اعمل مثلا داونلودر خاص بي
عملته على مبدأ مسرب وحيد انزل فايل وعندما ينتهي انزل الثاني وهكذا وبالتالي لم استفد من المسارب
اذا كان لدي مثلا 100 فايل اريد تنزيلهم والاحجام متفاوتة فهل اعرف اكثر من متحول على انه من نمط مسرب؟؟ للحصول على مسارب متعددة؟؟
يا شباب اذا ضعتو معي فخلوني بس اقول اني نظريا ساعمل التالي: صححوا لي ان اخطات!!
بفرض روابط الفايلات موجودة في لست بوكس
ساضيف وحدة مسرب جديدة ولتكن باسم TDownloadThread
ثم ساضع بها اجراء يقوم بعمل الداونلود وليكن باسم
DownloadFile(FileURL)
وفي بداية الاجراء مبااااشرة اضع تعليمة لحذف السطر الاول اي مسار الفابل من الlistbox حتى لا ينزل من قبل مسرب اخر
وساكتب بحدث الexecute للمسرب استدعاء الاجراء اي
DOwnload(ListBox1.items[0])
ثم في وحدة الفورم الرئيسي مثلا وفي حدث الضغط على زر اعرف عشر متحولات عامة او محلية تحت حدث ضغط الزر من المسرب اي
D1,D2,.......,D10: TDownloadThread
ثم سأكتب في حدث الضغط على الزر عشر اسطر:
D1.create(false) . . . . D10.create(false)
وعند انتهاء احد المسارب يعيد الكرة من اجل الفايل الاول ايضا وحتى انتهااااء الlistbox
هل حلي صحيح نظريا :blink:
ام بدل عشر متحولات اضيف للمشروع عشر وحدات مسارب ؟؟؟؟؟ :(
كما قلت السؤال نظري وما راح ابدا به عمليا الان (ماني فلضي) وانما فقط للاستئناس :D
يعني ممكن بالمستقبل عيد السؤال بعد اذنكم طبعا!!! ;)