草庐IT

【JavaEE】进程和线程

全部标签

windows - 如何在 COM 组件中创建线程?

我有一个在COM服务中实例化的COM组件(此.exe正在运行)。我有十个客户。每个客户端都从ROT获取接口(interface)(IXyz)指针并同时调用方法IXyz::abc()。根据我的跟踪,我看到IXyz::abc()同时被调用了10次,但是在10个不同的线程中。谁在创建这10个线程? 最佳答案 如果您仔细想想,COM的行为是有道理的。代码在服务进程内部执行。如果将类标记为在单线程单元中运行,则一次只有一个线程执行。并发调用堆积在消息qeueu中,一次执行一个。如果指定了多线程单元,则代码可以并发执行。为了在运行过程中完成此操

windows - 检测另一个进程的位数(在 Windows 中)

如何检测另一个进程是否在Windows中以32/64位运行?我知道如何为我自己的流程执行此操作,但不知道如何为不同的流程执行此操作。任何语言的提示或解决方案都可以。谢谢! 最佳答案 查看IsWow64Process. 关于windows-检测另一个进程的位数(在Windows中),我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1095085/

c++ - 使用系统托盘图标创建后台进程

我正在尝试制作一个Windows应用程序,它可以在后台检查某些内容,并通过系统托盘图标通知用户。该应用程序是使用非托管C++制作的,没有切换到.net或Java的选项。如果用户想停止应用程序,他将使用托盘图标。由于系统托盘方面的原因,该应用程序不能成为服务,因为它必须在不在用户计算机上安装任何东西的情况下运行(它是单个.exe)使用典型的Win32程序结构(RegisterClass、WndProc等)我不知道如何放置一些代码来分开窗口消息循环。也许我必须使用CreateProcess()或CreateThread()?这是处理多线程环境的正确方法吗?如果我必须使用CreateProc

c# - 沙盒 AppDomain 中的线程安全

我有一个应用程序域来托管不受信任的代码/程序集。我用安全属性解决了所有安全问题,而且效果很好。不受信任的代码在专用线程上运行。CLR是2.0。这就是我的AppDomainShellAppDomainSeed,Shell在主域中运行,seed是不受信任域中的受信任代理/助手。我有兴趣限制创建新线程和更改优先级。目前,我不受信任的程序集可以设置ThreadPriority.Highest或通过创建10k线程来终止操作系统。有SecurityPermissionFlag.ControlThread但这只会阻止像Abort()这样的高级操作。我正在查看Thread类实现,对于那些简单的操作,它

windows - 更改线程 session ID

如何在不同的session中启动线程?我需要从非交互式session(session0)中的服务启动交互式session(session1)中的线程。我之前通过使用SetTokenInFormation和DuplicateTokenEx然后将其传递给CreateProcessAsUser来完成此过程。我希望我可以做同样的事情,除了使用SetThreadToken而不是CreateProcessAsUser。 最佳答案 线程不属于session,进程属于。您需要在另一个session中创建一个进程来托管您想要的线程。

windows - 在 NT 驱动程序中拦截进程执行

我已经为WindowsXP开发了一个驱动程序,它能够监控进程的执行。回调函数使用标准WDKAPI(PsSetCreateProcessNotifyRoutine)接收通知。驱动程序然后决定该过程是否应该被授权;如果不是,它必须阻止它的执行/杀死它。以这种方式拦截执行的最干净的方法是什么?我不介意它是否没有记录在案,但如果可能的话,我宁愿不求助于Hook。 最佳答案 好的,根据这个文档:http://download.microsoft.com/download/4/4/b/44bb7147-f058-4002-9ab2-ed2287

windows - 为什么使用IIS7.5的Microsoft.Web.Management.dll只能在64位进程中使用?

我正在编写一些代码以允许用户远程管理IIS7。在引擎盖下,这将授权规则添加到c:\windows\system32\inetsrv\config\administration.config在以下配置部分下:system.webServer/management/authorization/authorizationRules我正在使用Microsoft.Web.Administration程序集和命名空间的代码类似于以下内容:usingMicrosoft.Web.Management.Server;...ManagementAuthorization.Grant("MySiteUser

c# - 获取进程私有(private)工作集内存

尝试以编程方式获取进程的私有(private)工作集。目前我能够毫无问题地获取工作集,但在获取私有(private)工作集时遇到问题。方法如下:privatevoidGetProcessesForServer(stringserverName){varrunningProcesses=newProcess[0];try{runningProcesses=Process.GetProcesses(serverName);}catch(Exceptione){ResultsPanel.Controls.Add(newLabel{Text=string.Format("Therewasane

c++ - 线程模拟的多级使用

我在使用一些很久以前编写的执行线程级模拟和进程生成的类时遇到了一些问题。问题似乎是我对这些实用程序类的使用超出了其他任何人尝试使用它们的范围。第一个通过使用OpenThreadToken和DuplicateToken以及ImpersonateLoggedOnUser进行线程级模拟。第二次尝试使用CreateProcessAsUser和通过OpenThreadToken/DuplicateToken获得的token创建进程。我遇到的问题是:Thread1runninginIISwiththecorrectuserThread2thatiscreatedbyThread1-whichisi

c++ - 子窗口中的多线程 OpenGL

我正在尝试构建一个即使在调整主窗口大小或移动时也能响应的OpenGL应用程序。我发现的最合乎逻辑的解决方案是在呈现OpenGL的单独线程中创建一个子窗口和一个消息泵。它可以根据需要在帧之间调整自身大小。主要消息泵和窗口框架在主进程中运行。它在某种程度上非常有效。可以移动窗口、使用菜单和调整大小,而不会影响子窗口的帧速率。SwapBuffers()是一切分崩离析的地方。SwapBuffers()以这种方式运行时,似乎是在软件模式下运行。它不再保持在60FPS以匹配我的显示器的VSync,当窗口约为100x100时它会跳到数百,而当最大化到1920x1080时它会下降到20FPS。在单线程