PDA

View Full Version : سوال: سورس استفاده از thread



Samsam2010
پنج شنبه 27 اسفند 1388, 21:21 عصر
با سلام

دوستان من در مورد thread اطلاعات زیادی ندارم یه سری کتاب راجع بهش دانلود کردم از همین سایت اما برام زیاد مفید نبود خواهش دارم یک سورس در این مورد برام بزارید
با تشکر

butterfly8528
جمعه 28 اسفند 1388, 02:57 صبح
سلام .

ظاهرا ویبی6 به صورت مناسبی از ترد پشتیبانی نمیکنه .

Samsam2010
جمعه 28 اسفند 1388, 12:18 عصر
دوست من حالا راحی نداره ؟

vbhamed
جمعه 28 اسفند 1388, 17:35 عصر
سلام

يك نمونه تو سايت ديده بودم
لطفا جستجو كنيد

butterfly8528
سه شنبه 10 فروردین 1389, 01:09 صبح
سلام .

یادمه مدیر بخش جناب x قبلا گفته بود ترد رو تو ویبی6 پیاده کرده !

xxxxx_xxxxx
سه شنبه 10 فروردین 1389, 04:48 صبح
سلام،
توابع لازم برای مدیریت Thread:


Public Declare Function CreateThread Lib "kernel32" (ByVal lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadID As Long) As Long
Public Declare Function TerminateThread Lib "kernel32" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long
CreateThread :
اصلی ترین تابع هست، برای ایجاد یک Thread جدید.
TerminateThread:
برای خاتمه دادن به روال یک Thread.



Public Declare Function SetThreadPriority Lib "kernel32" (ByVal hThread As Long, ByVal nPriority As Long) As Long
Public Declare Function GetThreadPriority Lib "kernel32" (ByVal hThread As Long) As Long
به ترتیب برای، اعمال اولویت یک Thread و اطلاع از اولویت یک Thread است.



Public Declare Function SuspendThread Lib "kernel32" (ByVal hThread As Long) As Long
Public Declare Function ResumeThread Lib "kernel32" (ByVal hThread As Long) As Long
اولی برای بردن Thread به حالت معلق یا ساکن است.
دومی برای ادامه دادن به اجرای یک Thread معلق شده است.

این توابع، ثابت های زیادی دارند. یک تعداد برای اولویت بندی هستند و یک تعداد برای Flag هایی که به Thread ها نسبت داده میشه هست. تو MSDN جستجو کنید. من الان هیچ کدوم رو ندارم.

روال یک Thread درواقع یک Function از نوع Public در یک ماژول است.

ایجاد Thread:


h = CreateThread(ByVal 0&, 0, AddressOf MyFunc, 0, 0, 0)
MyFunc همان تابعی هست که در ماژول به صورت public تعریف کرده اید و میخواهید به عنوان یک Thread جدید اجرا شود.
کار با Thread ها از طریق دستگیره ای که در زمان ایجاد به اونها اختصاص داده میشه انجام میگیره. در اینجا دستگیره موردنظر در متغیر h قرار میگیره. (معمولاً این متغیر ها رو باید در قسمت General تعریف کنید تا در کل برنامه در Event های مختلف بهشون دسترسی داشته باشید.)

خاتمه دادن به اجرای یک Thread:


TerminateThread h, 0
همونطور که در دستور فوق مشخص هست، Thread موردنظر از طریق دستگیره اش بسته میشه.

این ساده ترین کاری بود که میشد توسط Thread ها انجام داد.
موفق باشید/

Javad-2010
چهارشنبه 17 آذر 1389, 23:28 عصر
سلام .

ظاهرا ویبی6 به صورت مناسبی از ترد پشتیبانی نمیکنه .
یعنی میگید بیخیال استفاده از Thread در VB6 بشیم ؟

Felony
چهارشنبه 17 آذر 1389, 23:32 عصر
یعنی میگید بیخیال استفاده از Thread در VB6 بشیم ؟
دقیقا .....

aria1o
پنج شنبه 18 آذر 1389, 15:22 عصر
شاید این بدردت بخوره.