PDA

View Full Version : backgroundworker



neginazadi
سه شنبه 24 مرداد 1391, 15:39 عصر
سلام
من یه برنامه نوشتم که هر وقت تایمر فعال بشه باید تابعی که در backgroundworker نوشتم رو اجرا کنه اما ارور میده که This BackgroundWorker is currently busy and cannot run multiple tasks concurrently.
خیلی کار کردم روش اما جواب نمیده...
بعد یه سوال دیگه اگه در نام پورت بدم com1 که string هست یا 1 که int هست فرق داره یا هر دوش پورت 1 رو باز میکنه...ببخشید اگه سوالم خنده داره

Saman_12
سه شنبه 24 مرداد 1391, 16:02 عصر
اولی: به جای BW از ترد استفاده کنید و هر بار دوباره اون رو تعریف کنید یا حداقل BW رو تو رویداد تایمر تعریف کنید چون وقتی یک BW ران میشه تا وقتی که کارش تموم نشه نمیتونید دوباره رانش کنید(کلا ترد اینطوره)!

veniz2008
سه شنبه 24 مرداد 1391, 17:01 عصر
سلام. اون پیغام میگه که بک گران ورکر شما در پس زمینه مشغول انجام دادن کار مورد نظر هست و نمیتونه یکجا چند کار رو با هم انجام بده. شما باید اول چک کنی که آیا Backgroundworker مشغول هست یا کارش رو انجام داده ، کدش میشه این:

if (!backgroundWorker1.IsBusy)
backgroundWorker1.RunWorkerAsync();
موفق باشی دوست من.