debugger
جمعه 01 شهریور 1392, 14:47 عصر
من یک لیست از آدرس وب سایت ها در برنامه ام دارم . مثلا تعدادشون 5000 تا لینک است . حالا اومدم یک تابعی نوشتم که میاد به ترتیب از اولین لینک شروع میکنه و به لینک رجوع می کنه و بعد یک کلمه را داخل اون صفحه جستجو می کنه اگر وجود داشت توی یک لیست باکس اضافه میکنه و میره لینک بعدی و همین طور الی اخر و اگر هم وجود نداشت هیچی اضافه نمی کنه و میره بعدی
در واقع شبه کد زیر را در نظر بگیرید
for (int i = 0; i < ListBoxLinks.length; i++)
{
if (getSource(ListBoxLinks.items[i]).contain("xxxxx") == true)
{
ListBoxFind.items.add(ListBoxLinks.items[i]);
}
}
حالا بخاطر اینکه فرم برنامه ام سفید نشه و کاربر بتونه با فرم برنامه کار کنه اومدم یک Thread تعریف کردم . تا اینجای کار هیچ مشکلی نیست و برنامه بخوبی کار میکنه
ولی من میخوام یک textbox بزارم داخل برنامه . مثلا کاربر بیاد توش یه عددی را بنویسه مثلا 10
حالا برنامه باید بیاد 10 تا Thread ایجاد کنه و Thread1 بیاد اولین لینک از لیست را بخونه و چک کنه و thread2 بیاد دومین لینک از لیست را بخونه و الی اخر .... و thread10 بیاد دهمین لینک را بخونه و بعد از اتمام thread1 بره از یازدهمین لینک شروع کنه و thread2 بره از دوازدهمین لینک و ..... thread10 بره بیستمین لینک را بخونه و .... همینطوری تا اخر لیست پیش بره
تعداد لینک های موجود در لیست هم اصلا مشخص نیست . هر لحظه در حال افزایش است . یعنی یک تابع داره هی به تعداد لینک ها اضافه می کنه . پروسه زمانی Stop میشه که کاربر خودش stop کنه
نکته ای که هست اینه که 10 تا thread باید هم زمان اجرا بشه . یعنی نباید اینطوری باشه که ترد یک کارش تمام شد ترد دومی اجرا بشه و همین طور الی اخر . هر ده تا ترد با هم اجرا بشن و ممکنه ترد 8 کارش زود تمام بشه و نباید در حرکتش در لیست مشکلی بوجود بیاد
امیدوارم توضیحاتم واضح بوده باشه
ممنون میشم یک راه حل برای بنده ارائه کنید
با تشکر
در واقع شبه کد زیر را در نظر بگیرید
for (int i = 0; i < ListBoxLinks.length; i++)
{
if (getSource(ListBoxLinks.items[i]).contain("xxxxx") == true)
{
ListBoxFind.items.add(ListBoxLinks.items[i]);
}
}
حالا بخاطر اینکه فرم برنامه ام سفید نشه و کاربر بتونه با فرم برنامه کار کنه اومدم یک Thread تعریف کردم . تا اینجای کار هیچ مشکلی نیست و برنامه بخوبی کار میکنه
ولی من میخوام یک textbox بزارم داخل برنامه . مثلا کاربر بیاد توش یه عددی را بنویسه مثلا 10
حالا برنامه باید بیاد 10 تا Thread ایجاد کنه و Thread1 بیاد اولین لینک از لیست را بخونه و چک کنه و thread2 بیاد دومین لینک از لیست را بخونه و الی اخر .... و thread10 بیاد دهمین لینک را بخونه و بعد از اتمام thread1 بره از یازدهمین لینک شروع کنه و thread2 بره از دوازدهمین لینک و ..... thread10 بره بیستمین لینک را بخونه و .... همینطوری تا اخر لیست پیش بره
تعداد لینک های موجود در لیست هم اصلا مشخص نیست . هر لحظه در حال افزایش است . یعنی یک تابع داره هی به تعداد لینک ها اضافه می کنه . پروسه زمانی Stop میشه که کاربر خودش stop کنه
نکته ای که هست اینه که 10 تا thread باید هم زمان اجرا بشه . یعنی نباید اینطوری باشه که ترد یک کارش تمام شد ترد دومی اجرا بشه و همین طور الی اخر . هر ده تا ترد با هم اجرا بشن و ممکنه ترد 8 کارش زود تمام بشه و نباید در حرکتش در لیست مشکلی بوجود بیاد
امیدوارم توضیحاتم واضح بوده باشه
ممنون میشم یک راه حل برای بنده ارائه کنید
با تشکر