【发布时间】:2014-03-26 10:15:45
【问题描述】:
所以,我的问题是这样的:
- 我有一个名为 NetworkInterface 的类,它是使用 RakNet 网络库构建的。
- 它拥有一个方法,该方法使用 RakNet 用来发送和接收数据的 while 循环。
现在,我将 NetworkInterface 类设为单例,因为我希望它在我编写的游戏中只存在一次。
但是,如果我只是用 while 循环调用该方法,它会停止我的整个 gqme,所以这就是为什么我希望它在不同的线程上运行,这样它就不会干扰游戏机制。 现在,我使用 std::thread 对象在另一个线程上启动 NetworkInterface 中的方法,但它引发 C3867 错误,指出该方法需要是静态的或某种类型的(我已经在 Google 上找到了这个)但我没有不知道如何解决这个问题,因为我在该方法中使用的变量也不能是静态的。
我希望这很清楚。简而言之,我将如何在我的程序的单独线程中从一个类中实现一个非静态方法。或者,还有更好的方法? (如果弹出,我不想使用 Boost 库)
【问题讨论】:
标签: c++ multithreading networking