1 ضمیمه
مشکل با مدیریت رویدادها آرایه ای از BackgroundWorker
با سلام
من یک برنامه با ساختار بسیار محاسباتی نوشتم که برای افزایش سرعت اون اومدم و از backgroundworker استفاده کردم این برنامه مربوط به محاسبه اعداد اول هست که بسیار سنگین هست.
و برای افزایش سرعت اون لازمه که حجم بیشتری از منابع رو درگیر کنه و سریع تر محاسبه کنه
من تونستم با ساخت 20 تا backgroundWorker سرعت برنامه را خیلی خیلی بالا ببرم (محاسبه 30 دقیقه رو در 70 ثانیه انجام میده)
به هرحال سوالم اینه:
من میخوام به جای ساخت تعداد ثابتی backgroundworker بیام از ارایه استفاده کنم
مثلا :
ارور رویداد رو چطور برطرف کنم؟
اینم بگم که هر bakground worker بر اساس شماره که داره (مثل 5 امین) دستور خاصی رو اجرا می کنه که وابسته به شماره اون هست.
خیلی ممنونم.
نقل قول: مشکل با مدیریت رویداد ها آرایه ای از BackgroundWorker ( سی شارپ )
Workers = new BackgroundWorker[n];
for (int i = 0; i < n; i++)
{
Workers[i] = new BackgroundWorker();
Workers[i].DoWork += new DoWorkEventHandler(bw_DoWork);
}
private void bw_DoWork(object sender, DoWorkEventArgs e)
{
//Code
}
نقل قول: مشکل با مدیریت رویداد ها آرایه ای از BackgroundWorker ( سی شارپ )
سلام خیلی خیلی ممنونم فقط وقتی برنامه رو اجرا می کنم ارور میده ارور index out of Range Exception was unhandled این ارور رو چطور باید درست کرد؟
نقل قول: مشکل با مدیریت رویدادها آرایه ای از BackgroundWorker
سلام دوست من ، با اجازه از استاد محترم جناب ژیار رحیمی ، دوست من استاد یادشون رفت که این رو داخل حلقه For بنویسند به این صورت بنویسید
for (int i = 0; i < n-1; i++)
پیروز و موفق باشید
نقل قول: مشکل با مدیریت رویدادها آرایه ای از BackgroundWorker
با سلام
بله ممنونم ولی وقتی کد را اجرا می کنم با ارور روبرو میشم این ارور برطرف شه اماده میشه.
بابت پاسخ گویی سریع شما بسیار ممنونم
نقل قول: مشکل با مدیریت رویدادها آرایه ای از BackgroundWorker
سلام دوست من ، متوجه شدم این خطای شما به این معنی که ایندکسی که انتخاب کردید خارج از محدوده است .به این خاطر هم عرض کردم حلقه رو به این شکل تغییر بدید یا i <= n و یا i < n-1 . بعد هم در نظر داشته باشید ایندکس ها از صفر شروع میشن.
نقل قول: مشکل با مدیریت رویدادها آرایه ای از BackgroundWorker
سلام
شما درست می فرمایید و باید ابتدای حلقه را به آن صورت نوشت.
ولی حتی اگر حلقه را بردارم و فقط برای یک BackgroundWorker بنویسم باز هم ارور میدهد.
حتی با foreach هم نشد.
به هر حال اگر راه حلی پیدا کردید مرا مطلع سازید
ممنونم