草庐IT

线程id

全部标签

C++线程分离进程

有什么方法可以让一个线程分支到它自己的独立进程中吗?我知道有CreateProcess函数,但据我所知,您只能使用它运行外部应用程序。我所要求的是可能的吗? 最佳答案 这是可能的。您可以使用虚拟应用程序和CREATE_SUSPENDED标志调用CreateProcess,这样它就不会立即运行。然后你可以使用VirtualAllocEx在创建的进程中分配内存空间,并使用WriteProcessMemory将代码和数据写入其中。然后取消挂起进程以运行它。您还可以使用CreateRemoteThread创建一个在另一个现有进程的上下文中运

c++ - 在创建线程时无法理解此错误

HANDLEhThread;DWORDdwThreadId;hThread=CreateThread(NULL,//defaultsecurityattributes0,//usedefaultstacksizeMyThreadFunction,//threadfunctionname0,//argumenttothreadfunction0,//usedefaultcreationflags&dwThreadId);//returnsthethreadidentifier错误指定了第三个参数,但是当我双击错误时它会将我带到最后一个参数?尝试运行msdnCreateThread示例ht

C++ 线程安全双向链表

我正在编写的应用程序需要上述数据结构。我想知道是否有一个库已经实现了它,或者我是否必须自己编写它?如果没有必要,我真的不想重新发明轮子。我需要这个结构能够使用多个线程添加和删除项目,而不必在这样做时锁定整个结构。 最佳答案 可能有,但我认为这是Java早期的教训之一-数据同步通常不在容器的成员函数级别,而是在上面的一个步骤。您应该在访问非线程安全列表之前使用同步对象。考虑:ThreadSafeQueuetsq;tsq.push_back(...);//addlotsofdata...//Findthefirstelementthat

c - c中的全局结构和多线程

谁能解释一下这段代码中的编译错误:#include"common.h"typedefstructnodeData{intprocid;unsignedshortlocalport;DWORDLIFETIME;DWORDHELLOTIMEOUT;DWORDMAXTIME;}nodeData;intlistenerThread(){if(!bindSocket(listenSocket,nodeData.localport)){closesocket(listenSocket);WSACleanup();exit(-1);}//morecodegoeshere}intmain(intarg

c++ - 进程 ID 和进程名称

我正在创建一个基本上扫描系统以查看特定进程是否正在运行的Windows程序。我有进程名称(AcroRd32.exe),没有别的。据我所知,最简单的方法是使用CreateToolhelp32Snapshot创建所有进程的快照,然后遍历每个进程以查找进程名称。我的应用程序以高性能为中心。那么有没有更好更有效的方法来做到这一点。应用程序每隔几秒收集一次快照。在快照中迭代100个进程似乎效率不高。是否有直接的API可以通过进程名称找到进程(并通过名称检索进程句柄或ID)?我进行了广泛的搜索,但运气不佳。有人试过这个吗? 最佳答案 扫描进程的

c++ - 如何在不同的线程上调用 glReadPixels?

当我在另一个线程上调用glReadPixels时,它没有返回任何数据。我在某处读到建议我需要在调用线程中创建一个新的上下文并将内存复制过来。我该怎么做?这是我使用的glReadPixels代码:pixels=newBYTE[3*width*height];glReadPixels(0,0,width,height,GL_RGB,GL_UNSIGNED_BYTE,pixels);image=FreeImage_ConvertFromRawBits(pixels,width,height,3*width,24,0xFF0000,0x00FF00,0x0000FF,false);FreeIm

c# - 云端唯一ID生成

我正在寻找一种简单但可靠的解决方案来配置唯一的部件号。我一直在考虑使用GUID来识别来自不同客户端(台式机、电话等)的请求,然后根据请求GUID的插入日期时间顺序分配PN。问题:SQLAzure是适合使用的服务吗?对此有标准方法吗?谢谢。 最佳答案 这与“在云上”没什么关系,而是一个普遍的分布式计算问题。您的问题中没有足够的信息来完全理解您的要求,但我收集到的是您需要为请求部件号的服务消费者分配一个唯一编号。第一个想法是GUID是一个数字(128位长)。每当您需要分配零件编号时,您不能只生成一个GUID吗?如果需要,您可以将GUID

c++ - 如何销毁由 std::thread 显式创建的线程?

我希望两个线程最初都在无限循环中运行,但过了一段时间我想杀死第一个线程而不等待它完成,第二个线程应该正常运行。我该如何实现?当我运行下面的代码时,出现调试错误!voidf1(inti){while(1){printf("ExecutngThread%d:%d\n",i,j);Sleep(10);}}intmain(){std::threadt1(f1,1);std::threadt2(f1,2);Sleep(100);t1.~thread();while(1){Sleep(10);}return0;} 最佳答案 程序按照设定的控制流

c++ - WINAPI - 我想在一个单独的线程中进行消息泵

在WindowsAPI中,制作一个窗口需要一个消息泵来保持窗口运行和更新。现在,写一个消息泵由一个while循环组成,它控制了整个程序,不允许执行其他事情,这是一个大问题。考虑我的代码,它是一个头文件,我称之为CFrame.h(因为在里面我创建了一个名为CFrame的类,它旨在模仿JFrame在Java中)。换句话说,我希望可以创建CFrame的多个实例,以便显示多个窗口,并且消息循环不会在创建第一个窗口后停止窗口。我为函数ThreadExecution()创建了一个新线程,由于某种原因程序刚刚终止,为什么?#defineUNICODE#includeconstwchar_tCLASS

c++ - 在 C 窗口中将参数传递给线程的最佳方法是什么?

嗨我有一个使用几个变量的线程。变量在运行时由argv[]确定。我的选择:使变量成为全局变量,以便线程可以使用它们(不需要保护它们,因为线程不会更改它们)。我不太愿意使用它,因为全局变量不是很好创建一个结构来保存变量并将其传递给线程。varibales并没有真正相关,因此它将是一个“强制”结构,除了线程的参数之外没有任何意义。而且,比选项1更复杂还有其他选择吗?哪个更好?谢谢! 最佳答案 itwouldbea"forced"structwithnomeaningotherthanargumentforthethread这听起来像是对结