草庐IT

线程信息

全部标签

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

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

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

c++ - 从密码策略中获取信息

有没有办法从密码策略中获取一些信息?如密码长度、密码最长使用期限等。我尝试在注册表中查找,但没有找到我要查找的内容。 最佳答案 您可以使用NetUserModalsGet。这是获取MaximumPasswordAge的示例intGetMaximumPasswordAge(){intAge=-1;DWORDdwLevel=0;USER_MODALS_INFO_0*pBuf=NULL;NET_API_STATUSnStatus;LPTSTRpszServerName=NULL;//nStatus=NetUserModalsGet((LP

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

linux - samba中如何获取用户的域信息

BG:我在redhatlinux中构建了samba,并共享了一个文件夹,然后从windows访问共享文件夹。如下所示,可以通过命令“smbstatus”获取连接信息[root@Redhat6pam.d]#smbstatusSambaversion3.5.10-125.el6PIDUsernameGroupMachine-------------------------------------------------------------------8303leondomainuserswin0832mc(::ffff:10.204.176.73)我们可以得到用户,域所在的组,那么如何

windows - WiX bundle 安装强制重启详细信息

我有Windows程序安装Bootstrap项目。链中有.NETFramework、VisualStudioC++可再发行组件、设备驱动程序安装程序和我的应用程序安装程序:我希望系统在安装.NET后重新启动,然后自动重新启动后继续安装。DotNET包组定义为:=v6.0ORVersionNT64>=v6.0)AND(NOT(Netfx4FullVersion="4.5.50709"ORNetfx4x64FullVersion="4.5.50709"))">.NETFramework安装完成后,Windows会显示其常用窗口,其中包含已打开的应用程

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

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