相关疑难解决方法(0)

托管代码和非托管代码,内存和大小有什么区别?

在看到和听取很多关于托管和非托管代码之后,并且知道唯一的区别是托管是关于CLR而非托管是在CLR之外,这让我非常好奇地了解它.它是什么,托管和非托管代码,内存和大小?

我在C#中编写的代码如何是非托管的,而这是C#代码,以及大小的内存如何变得不受管理.一个例子和一点点见解会有所帮助.

.net c# unmanaged managed

69
推荐指数
2
解决办法
7万
查看次数

获取进程的PID由Process.start()启动

我正在使用此代码启动可执行文件:

Process proc = new Process();
proc.StartInfo.FileName = executablePath;
proc.Start();
proc.WaitForInputIdle();
Run Code Online (Sandbox Code Playgroud)

在这个调用之后proc.Id它给了我一些整数,这不是真正的进程ID.在任务管理器中,此进程还有另一个ID,我也使用MS UI Automation访问此应用程序,该应用程序也返回与任务管理器中相同的ID.所以我的问题是如何获得启动过程的真实进程ID?

UPDATE

我发现在Windows 7上它工作正常并返回正确的ID,但不是在Windows XP上.可能是什么原因?

情景

该应用程序的场景如下.我有一个正在运行的嵌入式HTTP服务器,它不是由我实现的(这里是源代码).客户端连接到Web服务器并发送运行程序的请求.在我的服务器的请求处理程序中,我只是Process.start()用来启动请求的应用程序.作为Web服务器,程序为连接到它的每个客户端会话创建线程(我假设如此,因为我没有写它).这可以以某种方式帮助识别问题,因为它只存在于Windows XP X86 Service Pack 3上吗?

c# pid process .net-4.0

22
推荐指数
2
解决办法
4万
查看次数

标签 统计

c# ×2

.net ×1

.net-4.0 ×1

managed ×1

pid ×1

process ×1

unmanaged ×1