Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 德尔菲。线程方法通过线程访问';s句柄和(或)ID_Multithreading_Delphi_Sockets - Fatal编程技术网

Multithreading 德尔菲。线程方法通过线程访问';s句柄和(或)ID

Multithreading 德尔菲。线程方法通过线程访问';s句柄和(或)ID,multithreading,delphi,sockets,Multithreading,Delphi,Sockets,我正在使用Winsock 1.1开发基于Delphi的小型客户机-服务器应用程序 服务器: 当客户机试图通过TCP协议连接时,我为他创建了一个新的套接字和一个线程来处理它。 我使用CreateThread()过程创建新线程。 因此,对于每个客户机,我都有套接字+线程 我将线程句柄和ID存储在数组中,可以随时访问。 但是我不明白如何使用它的句柄和(或)ID调用线程方法。您没有创建任何线程对象,因此没有方法可调用。从TThread派生一个类,而不是直接调用CreateThread(),然后可以为每个

我正在使用Winsock 1.1开发基于Delphi的小型客户机-服务器应用程序 服务器: 当客户机试图通过TCP协议连接时,我为他创建了一个新的套接字和一个线程来处理它。 我使用CreateThread()过程创建新线程。 因此,对于每个客户机,我都有套接字+线程 我将线程句柄和ID存储在数组中,可以随时访问。
但是我不明白如何使用它的句柄和(或)ID调用线程方法。

您没有创建任何线程对象,因此没有方法可调用。从
TThread
派生一个类,而不是直接调用
CreateThread()
,然后可以为每个客户端创建一个新的线程对象,将对象指针存储在列表中,并在需要时调用这些对象上的方法。然后,您可以为类指定一个队列成员来保存挂起的数据,并根据需要重写虚拟的
Execute()
方法来处理该队列。

您还需要创建一个工作队列。每个线程都有自己的队列。线程从队列中提取工作。当控制器有新工作时,它将该工作推送到相应的队列中。