本文介绍了无法使用for循环创建多个线程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我正在尝试使用for循环创建3个线程。以下是我的代码片段: DWORD WINAPI ThreadProc0(LPVOID param) { return 0; } DWORD WINAPI ThreadProc1(LPVOID参数) {返回0; } DWORD WINAPI ThreadProc2(LPVOID参数) {返回0; } int WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd) { DWORD threadId = 0; int max_number = 1; //开始线程 typedef DWORD(WINAPI * THREADPROCFN)(LPVOID lpParameter); THREADPROCFN函数[3] = {ThreadProc0,ThreadProc1,ThreadProc2}; for(int i = 0; i< max_number; i ++) { CreateThread(NULL, 0,(LPTHREAD_START_ROUTINE)& function [i] ,(LPVOID)i, 0, NULL ); } } 代码编译成功但执行时错误是solution.exe已经停止工作。当我调试代码时,我收到以下错误: 0x0034fd00处的未处理异常Solution.exe:0xC0000005:访问冲突。 等待帮助。解决方案 这应该是 int max_number = 3; 对吗? This should be(LPTHREAD_START_ROUTINE)function[i],(without & operator). 这篇关于无法使用for循环创建多个线程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
09-27 09:24