الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعدة عاجل // كيف ابدا في عمل threads في لغة c++

بدأه aboseraj في 5 فبراير 2012 · 5 رد · 672 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

السؤال واضح من العنوان

بدي اعمل برنامج صغير يقوم بعمل العمليات الحسابيه جمع طرح ضرب قسمه

لكن عن طريقة الـ threads

كيف ممكن ان ابداء عمل برنامج في الـ c++

ارجوا المساعدة العاجله

#2

لو أنك تعمل على منصة اللينوكس هناك PThread

أنظر في قسم ال POSIX

#3

أنا بعتقد إنو PThread في نسخة على منصة الويندوز وإذا بدك كمان شوف دعم ال thread بمكتبات الويندوز وهاد الرابط:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms682516(v=vs.85).aspx

تم تعديل هذه المشاركة بواسطة a.mkh في 5 فبراير 2012 في 18:53

#4

السلام عليكم أخي أبو سراج في الحقيقة الموضوع الذي تبحث عنه دوّخني وأنا أبحث عنه .. وبالآخر وجدت الجواب هنا في هذا المنتدى

اجاب عنه الأخ الكريم : علي الزيودي .. والذي أشكره بالفعل على تلك المعلومة الواضحة والرائعة حيث كتب البرنامج التالي:

#include <iostream> 
#include <windows.h> 
#include<cstring> 
using namespace std; 

DWORD WINAPI ThreadProc( LPVOID lpParam )  
{     
    Beep(50,60000);   
    return 0; 
}; 

int main( )  
{ 

    DWORD dwThreadId; 

    HANDLE hThread = CreateThread(  
                  NULL,              // default security attributes 
                  0,                 // use default stack size   
                  ThreadProc,        // thread function  
                  NULL,             // argument to thread function  
                  0,                 // use default creation flags  
                  &dwThreadId);   // returns the thread identifier                                     


   cout<<"In the same time of the sound !\n"; 
   system("pause"); 

while(WaitForSingleObject(hThread,100)!=WAIT_OBJECT_0); 
    CloseHandle(hThread); 

   return 0; 
}

وفي الحقيقة وبعد أن فهمت الفكرة تماما ,, إليك برنامج صغير جداً أرجو أن تستفيد منه ..

بسم الله الرحمن الرحيم

#include<iostream.h>
unsigned long __stdcall threadname1(void *){cout<<"a"<<endl;return 0;}
unsigned long __stdcall threadname2(void *){cout<<"b"<<endl;return 0;}
void main()
{
unsigned long anyname1,anyname2;
createthread(0,0,threadname1,0,0,&anyname1);
createthread(0,0,threadname2,0,0,&anyname2);
while(1){
cout<<"i am sure you will like it"<<endl;
cout<<"BY MOSTAFA 36A2"<<endl;
}
}

تم تعديل هذه المشاركة بواسطة مصطفى 36a2 في 10 فبراير 2012 في 19:03

1
#5

أعتذر عن الكود السابق كان فيه خطأ بسيط :P وهو عدم اضمان مكتبة الwindows.h

أعتذر عن ذلك وإليك أخي البرنامج المصحح : تقبل اعتذاري

#include<iostream.h>
#include<windows.h>
unsigned long __stdcall threadname1(void *){cout<<"a"<<endl;return 0;}
unsigned long __stdcall threadname2(void *){Beep(6000,30000);return 0;}
void main()
{
unsigned long anyname1,anyname2;
CreateThread(0,0,threadname1,0,0,&anyname1);
CreateThread(0,0,threadname2,0,0,&anyname2);
while(1){
cout<<"i am sure you will like it"<<endl;
cout<<"BY MOSTAFA 36A2"<<endl;
}
}
1
#6
اقتباس
أعتذر عن الكود السابق كان فيه خطأ بسيط وهو عدم اضمان مكتبة الwindows.h

حقا لقد تعجبت من إستخدام createthread :) مع إدراج iostream فقط

1

مواضيع مشابهة