多个线程同步 究竟怎么写呢?

castlooo 2007-12-28 09:46:40
TMyThread是我的一个线程的定义,如下:
MyThread.cpp
__fastcall TMyThread::TMyThread(bool CreateSuspended)
: TThread(CreateSuspended)
{
Priority=tpNormal;
}
//---------------------------------------------------------------------------
void __fastcall TMyThread::Execute()
{
//---- Place thread code here ----
Synchronize(PushTheButton);
}
//---------------------------------------------------------------------------
void __fastcall TMyThread::PushTheButton(void)
{
Form1->Button1->Click();
}
//---------------------------------------------------------------------------

Form 的CPP文件
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShowMessage("按钮") ;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TMyThread *a=new TMyThread(false);
TMyThread *aa=new TMyThread(false);
}
//-------------------------------------------------------------------------
我点击Button2 的时候 a 和aa 能不能同步呢?
多个线程同步 究竟怎么写呢?
...全文
76 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lixinag 2008-01-04
  • 打赏
  • 举报
回复
关注
castlooo 2007-12-28
  • 打赏
  • 举报
回复
哦 这个样子啊
ydlchina 2007-12-28
  • 打赏
  • 举报
回复
Synchronize的意思并不是为了实现两个线程的同步,现在你创建了两个线程,要求让主线程同时进行,如果可行的话(在很多情况下会有问题)系统会自动给它们分配优先级,优先级不同,它们能同步吗?要实现同步,你要使用临界值,互斥,或时钟等技术,你可以查一下这方面的技术。
castlooo 2007-12-28
  • 打赏
  • 举报
回复
我点击Button2 的时候 a 和aa 能不能同步呢?
ydlchina 2007-12-28
  • 打赏
  • 举报
回复
你得使用临界值,互斥等技术才能实现
castlooo 2007-12-28
  • 打赏
  • 举报
回复
up

13,874

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧