多线程学习这句Form1->Begin Consumer->Set Event ();应该如何写?

new_BCBER 2015-01-18 12:25:57
void __fastcall TreadP::Execute()
{
NameThreadForDebugging(System::String(L"ThreadPTN"));
//---- Place thread code here ----

int i = 0;
int j;
while(i<100) //每个生产者线程生产100个商品
{
Sleep(1000);//延迟,为清楚得显示执行效果
if(Form1->buffer_size > 0)//缓冲池不空,通知消费者消费
{
Form1->B Begin Consumer->Set Event (); //这句应该是伪代码吧?
}
Form1->Produce Guard->Acquire ();
i++;
StrResult = IntToStr (i);
J = Form1->buffer_size;
Form1->Product [j] = i;
Form1->buffer_size++;
Synchronize(Show Result);//刷新界面,显示最新生产-消费状况
Form1->Begin Consumer->Set Event();//通知消费者消费
if(Form1->buffer_size == 5)//缓冲池满,挂起生产者线程,直到通知再生产
{
Form1->Begin Produce->Wait For (INFINITE);
}
Sleep (1000);
Form1->Produce Guard->Release ();
}
While (Form1->buffer_size > 0)
{
Form1->Begin Consumer->Set Event ();
}
}


...全文
188 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
z253642075 2015-01-26
  • 打赏
  • 举报
回复
可以直接调用EVENT API的吧……
无理蛇 2015-01-24
  • 打赏
  • 举报
回复
在线程中不用同步的方式调用窗体元素,你的代码执行不会有问题???
QIUSQJF 2015-01-20
  • 打赏
  • 举报
回复
可以直接调用EVENT API的吧……
new_BCBER 2015-01-19
  • 打赏
  • 举报
回复
我是从这里看的,好像不完整 http://www.shangxueba.com/jingyan/85860.html
我不懂电脑 2015-01-19
  • 打赏
  • 举报
回复
Form1->B Begin Consumer->Set Event (); 没有这样的语法

13,826

社区成员

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

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