- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
一个 friend 给我发了他的线程类(class)。现在我只想运行一个监听器,但线程不想接受该函数。我想执行函数(在 static class Networks
中定义)THREAD listen(void* args)
。 THREAD
是一个#define THREAD unsigned __stdcall
Networks::init() {
listenerth = thread();
listenerth.run(listen, NULL, "listener");
}
在 class thread
中,他将 run
定义为 void run( THREAD func(void*), void* args, const char* pname);
我怎样才能让它在另一个线程中运行?
[编辑]错误信息:main.cpp(19): error C3867: 'Networks::listen': 函数调用缺少参数列表;使用 '&Networks::listen' 创建指向成员的指针
但是当我将鼠标移到错误位置(符号监听)时,它会在工具提示中显示(是的,MS VC++):
unsigned int __stdcall Networks::listen(void* data)
Error: argument of type "unsigned int (__stdcall Networks::*)(void *data)" is incompatible with parameter of type "unsigned int (__stdcall )(void)"
最佳答案
正如其他人所说,您不能在这里使用非静态成员函数,因为它需要一个普通的函数指针。如果你需要调用一个非静态成员(因为它需要访问类中的状态),那么你可以使用 args
参数通过静态“蹦床”函数调用它,就像这样:
unsigned listen() {/* do the interesting stuff */}
static THREAD call_listen(void* me)
{
return static_cast<Networks*>(me)->listen();
}
void init()
{
listener = thread();
listener.run(call_listen, this, "listener");
}
关于c++ - 函数不想接受我的论点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3126664/
我的应用程序中有一个 IList 站点,并且站点有大量属性。 我想将此列表转换为 JSON,以便在类似于此的下拉列表中使用 var sites = SiteRepository.FindAll
我正在将一些代码从 bluebird 切换到原生 Promises,并且我对原生 promises 吞下错误这一事实感到相当恼火,即使没有定义 .catch() 也是如此。它使调试变得不可能,除非您在
在同步访问共享资源时,是否有理由不使用读/写锁而不是普通的互斥锁(基本上只是写锁),除了它具有比我可能需要的更多功能的哲学原因? 换句话说,如果我只是默认使用读/写锁作为我首选的同步结构,我是不是在踢
我刚进入这个元素,代码已经写好了,但我们发现了一个问题。当您单击菜单中的任何位置时,它会变成金色,您看不到菜单该部分中的任何链接。您可以再次单击它,它将返回到正常状态。这只发生在 Internet E
这是一个简单的类和简单的测试函数: #include #include namespace { using namespace std; } class NameStream {
我有一个 std::vector其中 Foo是一个包含 Foo( Foo&& ) noexcept 的类. 向容器中添加对象完美无缺,但是使用 std::vector::erase( iterator
我正在通过这段代码使用各种浏览器尝试 localStorage 和 JSON: function getStorage() { stored = JSON.pa
您可能认为此问题与 Running two projects at once in Visual Studio 完全相同.不完全是,恰恰相反。 我有一个带有两个 MVC3 项目的 VS 2010 解决
我正在制作一个网站:http://arc-angyal.hu/ 我的第一个问题是,我无法让左侧的红色 div 足够高以填充页眉和页脚之间的空间。它位于标题之后和导航之前。我已经设置: html, bo
根据 This Question ,我正在使用线程来终止用户输入的函数。我的代码看起来像: bool stopper = false; thread stopThread(userStop, &sto
我是一名优秀的程序员,十分优秀!