0

我想在自己的线程中启动一个结构方法:

g_thread_new( "NewThread", mymethod , NULL)

问题是,程序只有在我将方法设置为“静态”时才能编译:

static gpointer mymethod(gpointer nrp) { puts(this->mystring) ; ... }

但是如果我将方法设置为“静态”,我将无法访问像 this->mystring 这样的结构实例变量。

有没有办法将 g_thread_new 与类方法一起使用并访问实例变量?

4

1 回答 1

0

您可以并且应该做的是void*在静态函数中接收 a 作为来自线程的参数。那void*就是你想要它的函数调用的对象。只需将其转换为对象的类型并调用该方法即可。

另外,考虑使用boost::thread.

于 2013-09-15T22:43:53.977 回答