首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

大侠指教 50分送上 多线程调用同一个函数,怎么使一个线程结束后,才开始另一个线程

2012-03-18 
大侠指教 50分送上 多线程调用同一个函数,如何使一个线程结束后,才开始另一个线程 - C++ Builder / Window

大侠指教 50分送上 多线程调用同一个函数,如何使一个线程结束后,才开始另一个线程 - C++ Builder / Windows SDK/API
代码如下:
TForm1 *Form1;
int x ;
//---------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
 x = 0;
}
//---------------------------------------
unsigned long __stdcall MyThreadFunc(void *lpParam)
{
  // you code
  TCriticalSection * pLockX = new TCriticalSection();
  pLockX->Acquire();
  srand(time(NULL));
  x += 10;
// CCriticalSection critical_section;
  for(int i =0; i < 100000; i++)
  Form1->Canvas->TextOutA(x,x+20,IntToStr(i));
  pLockX->Release();
  delete pLockX;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  unsigned long ThreadID;
  HANDLE Handle = CreateThread(NULL, 0, MyThreadFunc, NULL, 0, &ThreadID);
  CloseHandle(Handle);  
}
创建临界区没有用,单机button1 两次 如第一个线程运行到80000,则停止,开始运行第二个线程。如何让第一个运行完,再开始第二个

[解决办法]

探讨
首先谢谢你的回答,但我想知道的是上面的代码为什么不对,怎么才能对,您说的那也行,代码怎么写,百度好用就不发贴了

热点排行