View Full Version : Multi Threading
Orion
15 June 2008, 05:33 PM
دوستان تو يه پروژه با vb.net 2005 بدجوري به قابليت Multi Threading احتياج پيدا كردم. ولي درست و حسابي بلد نيستم. كسي آموزشي، سمپلي چيزي نداره؟
mehdihamedali
15 June 2008, 10:29 PM
بیشتر توضیح بده من خیلی سمپل دارم شاید این رو هم داشته باشم
اگه بتونم کمکت میکنم
به هر حال موفق باشی
Orion
15 June 2008, 10:35 PM
ببين عزيزم برنامه اصلي خودش يه نخ حساب ميشه. من ميام يه نخ ديگه درست ميكنم. ولي اين نخ جديده به اجزاي فرم اصلي برنامه دسترسي نداره. مثلاً اگر من تو Procedure نخ دومي بگم textbox1.enabled=false خطا ميگيره. چون Thread به اجزاء و كامپوننتهاي Thread ديگه دسترسي نداره.
palizesoftware
16 June 2008, 09:48 AM
ببين عزيزم برنامه اصلي خودش يه نخ حساب ميشه. من ميام يه نخ ديگه درست ميكنم. ولي اين نخ جديده به اجزاي فرم اصلي برنامه دسترسي نداره. مثلاً اگر من تو Procedure نخ دومي بگم textbox1.enabled=false خطا ميگيره. چون Thread به اجزاء و كامپوننتهاي Thread ديگه دسترسي نداره.
بايد اينطوري كار كني:
Private Sub MyProc()
If Me.InvokeRequired Then
Me.Invoke(New MethodInvoker(AddressOf MyProc))
Else
textbox1.enabled = False
End If
End Subكه در اينجا MyProc پروسه thread هست و قبل از هر thread بايد متد Invoke رو صدا بزني. حالا هر كاري كه ميخواي در threadاصلي انجام بدي رو توي بخش else قرار بده.
Orion
16 June 2008, 10:48 AM
حالا معني اين كدي كه گذاشتيد چيه؟ InvokeRequired و Invoke چيكار ميكنند؟
palizesoftware
16 June 2008, 12:42 PM
حالا معني اين كدي كه گذاشتيد چيه؟ InvokeRequired و Invoke چيكار ميكنند؟
InvokeRequired بررسی میکنه آیا از Thread متفاوت با Thread ای که کنترل در اون ایجاد شده داره این دستور اجرا میشه یا نه، در صورت که Thread متفاوتی باشه True برمیگردونه و ما از شیوهای که میبنید استفاده میکنیم و در غیر اینصورت مقدار False برمیگردونه و به صورت مستقیم مقدار رو ست میکنیم.
Orion
16 June 2008, 01:45 PM
خيلي ممنون. الان برنامه مثل ساعت كار ميكنه! :icon_cool
Orion
16 June 2008, 08:42 PM
من مشكلم با كمك دوست عزيزم palizesoftware ([Only registered and activated users can see links]) و سر و كله زدن خودم با برنامه حل شد ولي تجربهاي كه من كسب كردم اينه: تا اونجا كه ميتونين از اين قابليت استفاده نكنيد مگر اينكه مجبور بشيد! چون واقعاً Debugging برنامههاي MultiTreading پدر در مياره!
vBulletin v3.7.1, Copyright ©2000-2008, Jelsoft Enterprises Ltd.