PDA

View Full Version : یک مشکل کوچک و چندین راه حل و نیاز به راهنمایی



nimar1
یک شنبه 18 تیر 1391, 00:21 صبح
با تشکر دوستان مشکل حل شدش و با همون thread حلش کردم و برای دوستان هم که نیاز دارند به کمک میگم مشکل چی بودش تا اونها هم استفاده کنند ببینید مشکل این بودش که من مثلا یک تابع sleep و اجرا میکردم البته تابع افتبپی بودش ولی برای راحتی کار میگم چون همون اتفاق میفته و این مشد که در زمان اسلیپ برنامه کلا چه قبل و چه بعد از دستورش دستورات دیگرو اجرا نمیکردش و به صورت خطی عمل نمیکردش اول اسلیپ و اجرا میکردش بعدا چیزهای دیگرو البته این از نظر بینایی بودش نه فیزیکی به هر حال با گذاشتن دو تا thread حل شدش

void CGDlg::OnClickButtonpicupup()
{
// TODO: Add your control notification handler code here
timerm=3;
//thread CODE
THREADSTRUCT *_param = new THREADSTRUCT;
_param->_this = this;
زیر برنامه اولی AfxBeginThread (StartThread, _param);
زیر برنامه دومی AfxBeginThread (StartThread2, _param);
//end thread CODE
}

-----------------------------------
زیر برنامه یک و دومی
UINT CGDlg::StartThread (LPVOID param) // thread
{

AfxMessageBox ("Thread is started 1");

return 1;
}

UINT CGDlg::StartThread2 (LPVOID param) // thread
{

AfxMessageBox ("Thread is started 2");

return 1;
------------------------------------


خوب اون بالایها برای فایل دیالوک cpp بودش این زیریها برای فایل h هستش

// Construction
public:
CGDlg(CWnd* pParent = NULL); // standard constructor
// start thread
static UINT StartThread (LPVOID param); //controlling function header
static UINT StartThread2 (LPVOID param); //controlling function header
typedef struct THREADSTRUCT //structure for passing to the controlling function
{
CGapDlg* _this;
} THREADSTRUCT;


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