关于一个多线程问题(50分)

  • 主题发起人 主题发起人 Liulang
  • 开始时间 开始时间
L

Liulang

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在线程中动态生成一个控件,比如说按钮,按钮有单击,双击,等多个事件要响应,
我该怎么写线程程序?多谢
我比较穷,只有50分可以贡献了,希望大侠不要嫌少,多谢
 
在线程中使用VCL应该用synchronize吧。动态添加控件和事件与不使用线程时没什么差别
呀。
 
我在D6里面想做一个聊天软件,用nmmsgserv/nmmsg做,我想把nmmsgserv和nmmsg分别写在
不同的两个线程里面,但是那两个控件都有很多事件要响应,我不知道怎么写了,你能教我
一下吗?多谢!
 
这2个控件本身就利用了多线程,
你如果想使用多线程还是利用
winsock好点,或者用TServerSocket或者TClientSocket的阻塞模式.
 
无忌大哥:
我就是想用在一个聊天程序中集成server和client,所以想用线程来同步
 
我手头上就有一个我用ICMP协议写的聊天程序,
你知道ICMP是很原始的,没有什么Client和Server
只分,我一样做到了多人聊天。不需要服务器,
如果你要,我可以提供一些思路给你。
 
动态创建按钮响应事件:
先写一个函数(或者过程,如果是delphi) , 输入与输出参数的类型与按钮的响应事件的函数
参数保持一致。例子(BCB 5 ,delphi 类推)中OnbtnClick为手动添加的函数。
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TButton *Btn=new TButton(this);
Btn->OnClick=OnbtnClick;
Btn->Click();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::OnbtnClick(TObject * Sender)
{
//TODO: Add your source code here
ShowMessage("Hello Baby");
}
//---------------------------------------------------
 
如果生成button

button.onclick :=your_procedure
 
GUI没必要用线程来处理,你应该把所有涉及到GUI的操作放在主线程,Server Socket用阻塞
多线程方式,如果只是简单的点对点聊天,也可以用非阻塞方式,那样根本无需用到线程。
 
明白了,谢谢大家
 
后退
顶部