PDA

نسخه کامل مشاهده نسخه کامل : چطور میتونم برنامم رو multi thread کنم اگه ممکن یه نمونه بزارید



MohammadJavad.T
26-05-2007, 23:44
سلام
یه سوال داشتم اگه جواب بدین ممنون میشم
چطور میتونم برنامم رو multi thread کنم اگه ممکن یه نمونه بزارید

anvar.net
27-05-2007, 00:05
یک نمونه
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

میخواستم بپرسم به چه دلیلی و کجا میخوای از چند ریسمانی استفاده کنی.

MohammadJavad.T
27-05-2007, 11:45
سلام
ممنون از نمونه که گذاشتی ولی هنوز نگاه نکردم

میخواستم بپرسم به چه دلیلی و کجا میخوای از چند ریسمانی استفاده کنی.
یه بر نامه که برا یکی از دوستم دارم مینویسم وقتی مقدار ها تو list box لیست میشن فرم یه هنگی میکنه
حلا اگه multi thread کنم به احتمال زیا باید این مشکل حل بشه

MohammadJavad.T
27-05-2007, 19:50
سلام
sourcet موقعه کامپایل تو سه جا خطا داشت. مقاله در موردش نداری یا یه source بدون اشتباه
دوستان اگه کسی چیزی داره لطف کنه بزاره

_H2_
28-05-2007, 16:26
سلام
- من سورس را دنلود نکردم ولی شما یک کامپونت BackgroundWorker روی فرمتان قرار دهید.
- در رویداد DoWork همین کامپونت دستورات مورد نظرتان را که زمان بر هستند بنویسید.
- در Form_Load یا هرجای دیگه متد RunWorkerAsync مربوط به کامپونت را برای شروع فرایند اجرا کنید.

همین! خیلی راحت است، یک امتحانی بکنید، مشکل داستید هستیم!!!

anvar.net
28-05-2007, 17:02
دوست عزیز :
اون Sample تو سیستم من مشکلی نداره و اجرا میشه
چیزی که دوستمون _H2_ گفتند, یه امتحانی بکن.
از مستندات online MSDN استفاده کن.
فعلا وقت

anvar.net
28-05-2007, 17:03
دوست عزیز :
اون Sample تو سیستم من مشکلی نداره و اجرا میشه
چیزی که دوستمون _H2_ گفتند, یه امتحانی بکن.
از مستندات online MSDN استفاده کن.
فعلا وقت کافی ندارم و لی در اولین فرصت یک چیزی برات میفرستم.

MohammadJavad.T
29-05-2007, 00:57
سلام

- من سورس را دنلود نکردم ولی شما یک کامپونت BackgroundWorker روی فرمتان قرار دهید.
- در رویداد DoWork همین کامپونت دستورات مورد نظرتان را که زمان بر هستند بنویسید.
- در Form_Load یا هرجای دیگه متد RunWorkerAsync مربوط به کامپونت را برای شروع فرایند اجرا کنید.

همین! خیلی راحت است، یک امتحانی بکنید، مشکل داستید هستیم!!!


راه جالبی بود ممنون از راهنمایت فقط یه سوال اینجا برام پیش امد این کامپونت کارش فقط همینه؟ چون تا حالا من با این کار نکردم

اون Sample تو سیستم من مشکلی نداره و اجرا میشه
چیزی که دوستمون _H2_ گفتند, یه امتحانی بکن.
از مستندات online MSDN استفاده کن.
فعلا وقت کافی ندارم و لی در اولین فرصت یک چیزی برات میفرستم.
ولی رو سیستم من اجرا نمیشه شما از vb 7 استفاده میکنید؟
زیاد عجله ندارم ولی اگه زحمتی نیست برام فرصت کردی بزار

_H2_
29-05-2007, 10:29
سلام


راه جالبی بود ممنون از راهنمایت فقط یه سوال اینجا برام پیش امد این کامپونت کارش فقط همینه؟ چون تا حالا من با این کار نکردم


بله! وظیفه این کامپونت صرفاً اجرای یکسری دستورات در ریسمانی جدید است و خیلی راحت با فرمها و برنامه های معمولی قابل استفاده است.

MohammadJavad.T
29-05-2007, 16:49
ممنون از تو ضیح چیزه جالبی بود دمت گرم

Shahrdar
30-05-2007, 10:28
سلام به همه روستان

دوست عزیز من یه راه حل دی هم دارم ولی‌ همه جا نمی‌شه ازش استفاده کرد

این کد رو اجرا کن... بلافاصله فرم قفل می‌کنه


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اما با این کد درست می‌شه


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

MohammadJavad.T
01-06-2007, 03:13
سلام به همه روستان

دوست عزیز من یه راه حل دی هم دارم ولی‌ همه جا نمی‌شه ازش استفاده کرد

این کد رو اجرا کن... بلافاصله فرم قفل می‌کنه


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اما با این کد درست می‌شه


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام دوست عزیز
ممنون از این که جواب دادین
مثلا کجا ها نمیشه استفاده کرد ؟

anvar.net
01-06-2007, 23:34
این روش در کار با پایگاه های داده بزرگ چندان مناسب نیست. من با یک پایگاه داده 1000 رکوردی تست کردم نتیجه چنین شد :
لود اطلاعات خوب بود منتها عیب کار اینجاست که با این روش کمترین داده هایی که لود میشوند در کنترلها قابل دیدن هستند تا اینکه تمام رکوردها وارد کنترل شوند. یعنی عمل لود داده ها ممکن است چند دقیق طول بکشد و داده ها (به هر تعداد که تا آن زمان وارد کنترل شده اند) قابل مشاهده هستند. و کاربر با اینکه یکسری داده را در کنترل می بیند اما تا اتمام کل داده ها نمیتواند هیچ کاری بکند.

_H2_
02-06-2007, 10:11
سلام
درست است، روش فوق بیشتر به کار VB6 می آمده و برایکارهای سنگین خوب نیست و کند عمل میکند و برای کارهای سبک هم عموماً اگر بدون DoEvents اجرا شوند در یک چشم برهم زدن اجرا میشوند و دیگری نیازی نیست!!! البته باز وجود دستور فوق لازم است و از خوابیدن و بلوکه شدن ریسمان جلوگیری میکند.