问题标签 [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.
c++ - C++ CreateThread() LPSTR 参数错误 Windows 7 (64)
我正在尝试使用 CreateThread() 函数创建一个简单的程序。我需要将LPSTR
参数传递给 struct 中的新线程函数pDataArray
。我遵循 MSDN 的示例(MSDN CreateThread() Example)。
主函数(CreateNewThread)从另一个函数接收LPSTR command
带有示例文本“hi all”的变量并正常工作,它正确地引入到结构中,但是当我尝试将它发送到线程函数(MyThreadFunction)时它返回了很多奇怪字符,我想内存转储:
CreateThread函数的代码是:
MyThreadFunction() 的代码是:
有人能告诉我将LPSTR
变量发送到线程函数的正确方法是什么吗?
谢谢指教。
c++ - OpenVPN TAP I/O 操作永远阻塞
当调用 GetOverlappedResult 时,以下代码永远挂起,我在 windows 异步 IO 操作方面没有太多经验,我根据自己的理解实现了它。我用它来访问虚拟网络接口(通过 openvpn - TAP/TUN 接口,其内核驱动程序安装正确)。
我找到了它挂起的地方,但我不知道它挂起的原因?
上面的代码在使用 CreateThread API 创建的线程内的无限 while 循环中执行。
我是否正确实现了异步操作?
GetOverlappedResult 挂起时可能出现哪些情况?
PS:很少有 ReadFile 调用成功,它可以成功读取以太网帧,但大约挂起。15-20 个电话。
c++ - GetExitCodeThread() 获取的值错误
我使用CreateThread()
有效参数创建了一个线程。基于一个简单的if-else
条件,我返回DWORD
设置为 1 的类型变量。
然后内部函数:
我WaitForSingleObject()
INFINITE
撒谎。然后我调用函数GetExitCodeThread()
。
我得到了不同的价值,无论我做什么,它都不会改变。它始终是 6。
我也很困惑是否应该使用WaitForSingleObject
as wellGetExitCodeThread
或者我应该只使用其中之一。MSDN上没有提到两者是相互替代的。但我只是想,当WaitForSingleObject
成功时,图片中的线程句柄可能会被释放,或者在最坏的情况下可能会分配给不同的线程。那就GetExitCodeThread
惨败了。
windows - POSIX 线程与 Windows 线程
我对 pthreads 有一些经验,并且正在研究 windows 中的线程。在大多数情况下,它们看起来非常相似,但我对一件事感到困惑。使用 pthreads,父进程的堆与线程共享,这意味着它们都可以访问相同的内存。Windows似乎不是这种情况,或者我想念一些东西。使用 windows 是否必须使用共享内存对象来访问所有人使用的变量?
c++ - 多线程程序只执行最后创建的线程?
我创建了 4 个线程,但是当我执行这个程序时,我得到这个作为输出:
我有两个问题:
- 我只创建了 4 个线程,为什么它显示线程 #: 5
- 创建的所有 4 个线程都应该按顺序运行,但为什么它只运行最后一个创建的线程?
源代码:
c - CreateThread 是否提供内存顺序保证?
虽然 pthread_create 提供了内存顺序保证(The Open Group Base Specifications Issue 7: Memory Synchronization),但Synchronization and Multiprocessor Issues: Memory Ordering中的措辞和CreateThread 函数中缺少措辞表明 CreateThread 没有。
winapi - 使用 CreateThread 调用类函数时出现错误 C3867
我尝试将一个类函数传递给从主函数调用的 CreateThread,但出现错误:
错误 C3867:“Display::fill_matrix”:函数调用缺少参数列表;使用 '&Display::fill_matrix' 创建指向成员的指针
c++ - C++ CreateThread() 奇怪的错误
我尝试在我的应用程序中使用 CreateThread() 函数,但我得到了奇怪的错误,确切地说:
和
第二个指示线
在 winbase.h 中,我不明白发生了什么,在示例中是相同的,但没有错误。我做错了什么?
代码:
c# - C++中的函数指针
我使用CreateThread 函数在 C++中编写了一个类似C# BackgroundWorker的类。我的代码:
背景工作者.h:
BackgroundWorker.cpp:
然后我创建了另一个派生自 BackgroundWorker 的类:
听线程.cpp:
但是该行给了我以下错误:
非标准语法;使用 '&' 创建指向成员的指针
c - SetWindowsHookEx 用法的区别
首先:我在 Windows XP - 32 位上使用 Visual Studio 2010。
现在我正在尝试编写一个 DLL,它将使另一个应用程序能够使用低级键盘挂钩。
即使我让它工作了——我现在想明白为什么。
非工作代码:
工作代码:
唯一的区别是我将SetWindowsHookEx
-call 从DllMain
移至ThreadProc
.
问题是:为什么这会有所不同?