في الحقيقة تفضل الاخ chik مشكورا
بطرح موضوع الثريد على الرابط التالي
وقال عنه :
اقتباسفيما يخص حلقات loop مثلا ولا سيما إذا كانت كبيرة أو لا منتهية فالأحسن أن نعملها داخل thread خاص بها وهذا سيقوم بإنجاز ما في الحلقة بشكل يمكن أن نقول مستقل عن البرنامج الرئيسي وهذا يمكن الحلقة من الإشتغال ويمكنك أن تقوم بأشياء أخرى دون أن نحس بأن الحاسوب متوقف.
وحيث ان الموضوع مهم ولكنه جاء تبعا لنقاش حول تحويل المتغيرات فقد احببت ان افرد له موضوعا مستقل لنستفيد جميعا منه
وقد قمت بتتبع الكود لفهمه وخرجت ببعض الاشكالات ارجو ان اجد لها جوابا .
DWORD WINAPI Chik5(LPVOID lpParam)
{
CString st1="Now Number is Mansur: ";
CString st2;
CListBox *list=(CListBox*)lpParam;
for (int i=0;i< 100000;i++)
{
if( i % 1000 ==0)
list->ResetContent();
st2.Format("%s %d",st1,i);
list->AddString(st2);
}
return 1;
}وهذا باعتقادي يشبه الـ Function بحيث انه يملك مدخلات وله مخرجات . حيث يتم استدعاءه من خلال الكود القادم
void CThrdDlg::OnWithThread()
{
m_list.ResetContent();
CreateThread(NULL,0,Chik5,&m_list,0,&IdThread);
}السؤال هو :
DWORD = ؟
WINAPI = ؟
Chik5 = الاسم الخاص بالثريد
(LPVOID lpParam) =اعتقد انها المدخلات ولكن ما نوعها ؟
كذلك الجملة اللتي تنشأ الثريد
CreateThread(NULL,0,Chik5,&m_list,0,&IdThread
ما هي البرميترات المدخله عليها غير الاسم ومكان المخرجات
اشكر لكم تفضلكم بالاجابة ..