PDA

View Full Version : مشکل در اجرای یک ترد جدید



omid_Ahmadi
چهارشنبه 11 مرداد 1385, 22:00 عصر
سلام
توی یه برنامه لازمه که ابتدا با استفاده از تابع Process::Start() یه برنامه ی دیگه اجرا بشه و بعد بلافاصله (حداکثر با 500 میلی ثانیه تاخیر) یکی از توابع موجود در برنامه ی اصلی، توی یه ترد جدید اجرا بشه. برای این کار از کد زیر استفاده کردم:



if(!dataReceptionThread)
dataReceptionThread = gcnew
Thread(gcnew ParameterizedThreadStart(Machine::DataReception));
dataReceptionThread->Name = "RtdataReceptionThread";
dataReceptionThread->Priority = ThreadPriority::Highest;
Process::Start(Machine::RealTimeExePath);
Machine::baseTime = DateTime::Now;
dataReceptionThread->Start(result);
Thread::CurrentThread->Sleep(500);
if(!dataReceptionThread->IsAlive)
throwgcnew Exception("Thread didn't run yet!");


اما متاسفانه ترد دوم حتی بعد از 50 پانیه هم اجرا نمیشه (البته همیشه هم به این صورت نیست، در 30 درصد موارد ترد درست اجرا میشه و در مابقی نه). چرا؟ و چه راه حلی داره؟
ممنون.