在线程的Execute中,不可以动态创建IdUDPClient控件吗?(100分)

  • 主题发起人 主题发起人 8341
  • 开始时间 开始时间
8

8341

Unregistered / Unconfirmed
GUEST, unregistred user!
我在一个video捕捉控件的videostream事件中,想利用idUDPClient控件把数据发送出去,
但是可能在发送过程中由于处理得较慢,以致于本次事件还没处理完,下次事件又发生了,
反正每过2分钟左右就出现“参数错误”,死机。所以我想在事件中用线程,事件一发生,
就创建一个线程,在线程中创建一个IdUDPClient控件。可是编译 IdUDPClient.create(self)
却发生错误:

在线程的EXECUTE中,
var
udp1:TidUDPClient;
begin
udp1:=TidUDPClient.create(self);
......
end;

编译出错:Incompatible types:'TComponent' and 'Tsend' (Tsend是我的线程类)

为什么?难道在线程中不可以动态创建idudpclient控件吗?
另外,象我这样的问题,怎么解决为好?用winsock我不熟,谁能举个winsock的例子?
 
[blue][/blue]富翁呢?来看看!
 
你把self换成nil看看
 
多谢rockjie,果然如此,我今天才明白SELF的含义。
但是我用多线程后,速度反而慢了许多。
 
你释放了创建的控件对象没有啊?如果释放了,那就是没办法的事情了,还有释放的时候我
觉得最好是在发送完毕的时候释放
 
接受答案了.
 
后退
顶部