Multithreading 德尔菲。线程方法通过线程访问';s句柄和(或)ID
我正在使用Winsock 1.1开发基于Delphi的小型客户机-服务器应用程序 服务器: 当客户机试图通过TCP协议连接时,我为他创建了一个新的套接字和一个线程来处理它。 我使用CreateThread()过程创建新线程。 因此,对于每个客户机,我都有套接字+线程 我将线程句柄和ID存储在数组中,可以随时访问。Multithreading 德尔菲。线程方法通过线程访问';s句柄和(或)ID,multithreading,delphi,sockets,Multithreading,Delphi,Sockets,我正在使用Winsock 1.1开发基于Delphi的小型客户机-服务器应用程序 服务器: 当客户机试图通过TCP协议连接时,我为他创建了一个新的套接字和一个线程来处理它。 我使用CreateThread()过程创建新线程。 因此,对于每个客户机,我都有套接字+线程 我将线程句柄和ID存储在数组中,可以随时访问。 但是我不明白如何使用它的句柄和(或)ID调用线程方法。您没有创建任何线程对象,因此没有方法可调用。从TThread派生一个类,而不是直接调用CreateThread(),然后可以为每个
但是我不明白如何使用它的句柄和(或)ID调用线程方法。您没有创建任何线程对象,因此没有方法可调用。从
TThread
派生一个类,而不是直接调用CreateThread()
,然后可以为每个客户端创建一个新的线程对象,将对象指针存储在列表中,并在需要时调用这些对象上的方法。然后,您可以为类指定一个队列成员来保存挂起的数据,并根据需要重写虚拟的Execute()
方法来处理该队列。您还需要创建一个工作队列。每个线程都有自己的队列。线程从队列中提取工作。当控制器有新工作时,它将该工作推送到相应的队列中。