草庐IT

线程id

全部标签

windows - 使用 Windows 线程时,是否可以指定一个缓冲区用于线程的堆栈,类似于 pthread_attr_setstack()?

pthreads允许用户提供一block内存用于线程堆栈:size_tstack_size=1024*1024*4;void*stack=malloc(stack_size);pthread_attr_tattributes;pthread_attr_init(&attributes);pthread_attr_setstack(&attributes,stack,stack_size);pthread_tthread_id;pthread_create(&thread_id,&attributes,worker_function,NULLWindows线程是否提供类似的功能?Crea

windows - x64下的线程信息 block

我需要从x64平台上的TIB获取最大和最小堆栈(我知道我需要用GS寄存器替换FS寄存器。)在x86平台上我可以使用thistable并找到正确的偏移量你知道我在哪里可以找到x64平台的表格吗? 最佳答案 这是一个适用于x86和x64的程序。#include#includevoidmain(){PNT_TIBptib=(PNT_TIB)NtCurrentTeb();#ifdef_AMD64_printf("Stackbase:%08I64X,limit:%08I64X\n",ptib->StackBase,ptib->StackLim

windows - 从 WlanEnumInterfaces 的 GUID 到硬件 ID、驱动程序版本等

我目前正在使用Windows原生wifi功能来做一些事情。这是一个真正很好的抽象,对我来说很容易使用。现在我需要更多有关我通过WlanEnumInterfaces获得的wifi接口(interface)的详细信息.基本上我想要硬件管理器中可用的信息,如硬件ID、驱动程序版本等。我现在不知道如何从GUID获取设备的一些较低级别的标识,我什至不知道现在有哪些方法可以查询详细的设备信息。期待一些帮助。菲利普 最佳答案 对我来说最简单的方法是查询注册表:SYSTEM\\CurrentControlSet\\Control\\Class\\{

c++ - 确定进程的输入线程 ID

有谁知道确定进程输入线程的方法吗?场景是我想调用GetKeyboardLayout,从一个单独的应用程序(可以是任何程序)中传入输入线程ID。每个线程都可以有自己的键盘输入语言集,但是为另一个进程找出合适的输入线程ID似乎是不可能的事情。例如,我创建了一个函数,我将记事本的进程ID传递给该函数,该函数在内部确定输入线程ID并从GetKeyboardLayout返回值。此函数的调用者随后会在屏幕上显示为记事本选择的输入语言。你们这些好人有什么想法吗? 最佳答案 Windows不要求进程具有与用户交互的特定线程。它不一定是进程的启动线程

windows - 通过 app-id 静态 html 链接到 WP7 应用程序

我想创建一个从我的应用程序到另一个应用程序的链接。我曾经在msdn上读到过,你可以只打开一个具有特定模式的url(例如windowsphone.com/apps/),但我再也找不到这个文档了。这仍然可行吗,还是有其他方法可以链接到其他应用程序? 最佳答案 我认为这种格式应该有效:www.windowsphone.com/s?appid=fd40c569-2681-48df-9ff3-53ffd80aa9b5 关于windows-通过app-id静态html链接到WP7应用程序,我们在St

c - 无法使用for循环创建多个线程

我正在尝试使用for循环创建3个线程。以下是我的代码片段:DWORDWINAPIThreadProc0(LPVOIDparam){return0;}DWORDWINAPIThreadProc1(LPVOIDparam){return0;}DWORDWINAPIThreadProc2(LPVOIDparam){return0;}intWINAPIWinMain(HINSTANCEhInst,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnShowCmd){DWORDthreadId=0;intmax_number=1;//Startthethreads

创建 3 个线程并使用 WSAWaitForMultipleEvents() 和 WSAEnumNetworkEvents() 时 CPU 使用率 100%

我创建了3个线程,每个线程都有一个套接字。在每个线程中,套接字被设置为“事件驱动”,并且每当数据可供读取时,就会生成一个事件。该代码工作正常,但它占用CPU使用率高达100%,这肯定是不可取的。我想我犯了一些错误。下面是我的代码。请帮助我找出导致100%CPU使用率的错误。代码:DWORDWINAPIThreadProc(LPVOIDparam){intthreadNumber=(int)param;intPORT=8888+threadNumber;//sothateachthreadbind()sitssockettoadifferentPortnumber.WSADATAwsa;

c# - 使用线程进行数据库操作的最佳方式是什么?

我正在开发一个以SQLCompact作为主数据库的WinForms应用程序。有人告诉我我永远不会弄乱UI线程,每个操作都需要在UI线程之外完成。按照这个演讲,我为每个CRUD操作创建了一个线程并出现了一个进度条,但我认为这可能不是执行此操作的最佳方法,而且我不确定何时何地在数据库操作的同时使用线程。我没有使用UI线程来进行这些数据库调用,但如果我愿意的话,我没有看到任何问题。为了向用户显示信息,我在需要时调用(在网格或组合框中显示数据)。这是一小段代码:this.SuspendLayout();ProgressDialogprogressDialog=newProgressDialog

c++ - 在 Windows C++ 服务中阻塞两个线程

我有一个用C++编写的Windows服务,用作监听传入连接的TCP服务器。我初始化了服务器套接字并将accept代码放在一个单独的线程中。这将接受并处理传入的连接。但是,我还需要停止该线程以防服务收到停止信号。所以我想到了使用CreateEvent创建一个事件对象并等待它发出信号。这种等待将发生在创建接受线程的线程中。所以我可以使用TerminateThread函数在收到STOP信号时停止接受线程。然而,MSDN说TerminateThreadisadangerousfunctionthatshouldonlybeusedinthemostextremecases.应该如何严格遵守,我

c++ - 创建远程线程 - ERROR_ACCES_DENIED

我认为我的代码现在终于可以工作了。唯一的问题是,出于某种原因,即使我已经使用PROCESS_ALL_ACCESS打开进程,CreateRemoteThread也会返回一个错误:ERROR_ACCESS_DENIED。错误是通过GetLastError检索到的,它输出“5”,转换为ERROR_ACCESS_DENIED。#include#include#includechar*dllPath="C:\\Users\\Kalist\\Desktop\\Projects\\DLL\\bin\\Debug\\DLL.dll";char*ProcToInject="calc.exe";intma