问题标签 [createthread]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
869 浏览

c - TerminateThread() 终止线程时返回错误

我有一个使用该CreateThread函数创建的 ThreadA。在 ThreadA 内部,另一个线程 ThreadB 是使用该CreateThread函数创建的。

现在,我想从 ThreadA 终止 ThreadB 但TerminateThread函数失败。

是不是因为 ThreadA 可能无权终止 ThreadB?我真的对这种情况感到困惑。

0 投票
2 回答
1265 浏览

c++ - CreateThread 与 PsCreateSystemThread - 有什么区别?

我想问一下PsCreateSystemThread和有什么区别CreateThread。从 MSDN 的描述来看,这似乎PsCreateSystemThread是针对内核线程的。

CreateThread看起来像一个内核线程,但与一个进程共享相同的虚拟空间内存。这意味着我可以让许多线程一起运行,但我无法访问其他进程内存空间。

0 投票
2 回答
525 浏览

c++ - C++ 异常或将参数传递给线程


我正在尝试将结构传递给我的线程 CreateThread(),这是我的结构:

这是我打电话的方式CreateThread()

其中第一个是整数,第二个是指向当前类的指针。
而且,这是我的线程,我认为这就是问题所在

每当创建此线程时,程序就会崩溃,这是一个例外:

0 投票
2 回答
260 浏览

windows - CreateThread传递参数失败?

我的代码是这样的

starts是一个数组DWORD32

threads是一个数组HANDLE

但结果是

为什么结果看起来像这样?

0 投票
1 回答
2565 浏览

c++ - 将套接字句柄传递给线程时,recvfrom() 返回错误 10022

我正在为编程课程进行 UDP 聊天。现在,我正在处理并行输入/输出。

所以,我正在创建线程来接收来自服务器的消息:

套接字句柄来自:

但我收到:

错误 10022:参数无效。(返回者rercvfrom

哪里可能出错了?

编辑:

如果它没有传递给 CreateThread,它工作正常。例如:

它工作正常,套接字工作,没有给出错误,但是当我像问题中的代码一样将它传递给 createthread 时,会发生错误。

使用 VS10、winsock2 库。

0 投票
0 回答
74 浏览

c++ - C++:推荐使用哪种 API 在 Windows 应用程序中实现线程模型

我有一个 C++ 应用程序,它需要在 Windows 平台上进行多线程处理。浏览了一些论坛后,我CreateThread尝试了 API。是提供有关其签名的详细信息的链接。

但是,它总是抛出Access violation错误,在浏览了更多论坛之后,当他们说这个 API 总是有一些问题时,我有点困惑。有些人建议使用BeginThreadEx.

您对线程模型实现有什么建议?另外,请给出您推荐的理由。

0 投票
1 回答
212 浏览

c++ - 我该如何解决这个运行时错误?

我尝试使用 Detour 库来挂钩 CreateThread()函数。但由于一些错误,它不会工作。最后只调用CreateThread函数而不是直接调用,我自己构造DLL。在 DLL 构造和程序编译期间。它不会返回任何错误。但是,在运行时它会停止。

测试dll.cpp



通过使用上面的 testdll.cpp,我正在构建 DLL。

cl /nologo /W3 /Ox /Zi /MD /LD test.cpp

链接 /DEBUG /SUBSYSTEM:WINDOWS /ENTRY:DllMain /OUT:testdll_temp.dll /DEF:test.def testdll_temp.obj kernel32.lib

testcall.cpp //* 主程序 *//



即使我编译了这个, cl /Zi testcall.cpp

但我运行 testcall.exe 文件。库已正确加载,但是在执行以下行时,它停止了。

HANDLE a = C_thread(NULL, 0, ThreadFu, NULL, 0, &threadID);

我正在使用 Visual-C++ 命令提示符(不是 GUI)。请帮我解决这个问题。如果有的话,请纠正我。

0 投票
1 回答
1434 浏览

c++ - 在线程中写入文件,C++

我写了一个程序,它应该在线程中写“1”三秒钟。但是当我尝试调试或添加控件输出时,我意识到线程通常没有创建(控制台中没有输出或调试点的成就)。当我检查 的返回值时CreateThread(),没关系。我阅读了有关 I/O 的登录文件,但我认为我不需要它。我想要一个有两个线程的程序;一个写“1”三秒,第二个写“2”三秒。然后,比较结果。输入文件中是否混合了“1”和“2”都没关系。

0 投票
0 回答
243 浏览

c++ - 如何结束由_beginthreadex初始化的特定线程

我想关闭由_beginthreadex 初始化的线程。因为我也在为 GUI 使用 Qt,所以当我使用 _endthreadex() 时,它会关闭所有正在运行的线程,但我只想关闭或退出由 _beginthreadex() 开始的线程。

0 投票
1 回答
336 浏览

sdl - SDL_CreateThread 无效转换

我正在尝试在 SDL 中创建一个线程。我已按照我可以在网上找到的所有说明进行操作,但我不断收到此错误:

SDL\sample_profiler.cpp|72|错误:从 'int' 到 'int ( )(void )' 的无效转换 [-fpermissive]|

以下是我创建线程的代码:

以下是我的头文件中的函数: int thread_run(void *p_the_game_world);