主线程上的C ++多线程运行函数

时间:2015-05-23 18:13:12

标签: multithreading c++11

我有一个带有TCP Socket的线程,它连接到服务器并在while循环中等待数据,因此线程永远不会结束。当套接字接收数据时,会对其进行解析,并根据数据包的操作码调用x函数。什么是最快/最好的方式?

我读到了做某种任务/消息队列系统是一种方法,但不确定是否有更好的选择。

应该提到我不能使用boost:

编辑:抱歉,半睡半醒哈哈。

这是来自线程x的循环:

while (Running)
{
    if (client.IsConnected())
    {
        Recieve();
    }
    FPlatformProcess::Sleep(0.01);
}

在Receive函数中,它解析数据,并且基于数据包操作码,我需要能够在主线程(GUI线程)上调用一个函数,因为很多数据包都会产生GUI对象,我无法从主要线程以外的任何其他线程创建GUI对象。

所以基本上:我有一个主线程,它产生一个进入循环的新线程,监听数据,我需要能够从主线程上运行的第二个线程调用一个函数。

0 个答案:

没有答案