多乐士广告狗,3454美女游戏,美纳多
上一篇随笔中写过64位程序与32位程序(https://www.cnblogs.com/heavystudio/p/11059033.html),最近开始正式在项目中大量实现了,但又出现了一个问题,
由于32位程序中还调用了大量dll,导致每次调用时启动与关闭时都拖泥带水,致使出现运行异常runtime error r6016 - not enough space for thread data,经尝试发现,
这个异常会随运行内存变化而变化,根本原因是因为多次调用32位程序后,导致没有内存空间创建新的进程。
经查找资料显示,这个问题经常出现在由c、c++、vb6等写的代码中,而像c#中有自动内存管理,所以一般不会出现此类问题。
64位程序如下:
process.kill();立刻杀死一切由这个32位程序启动的进程,用一次,杀一次,不影响下次使用
static void main(string[] args)
{ //创建refproppipe进程
process process = new process();
//将refproppipe.exe放在与refprop64hv相同路径下,相对路径引用
process.startinfo.filename = @"c:\users\administrator\source\repos\refproppipe\refproppipe\bin\debug\refproppipe.exe";
//process.startinfo.filename = "refproppipe.exe";
process.start();
double value = 0;
//向refproppipe发送调用信息,即查询输入变量值
using (namedpipeclientstream pipeclientstream = new namedpipeclientstream("request"))
{
pipeclientstream.connect();
string input = method + "," + fluidname + "," + inpcode + "," + units + "," + prop1 + "," + prop2;
using (streamwriter writer = new streamwriter(pipeclientstream))
{
writer.writeasync(input);
}
}
//接收refproppipe返回的信息,即查询结果
using (namedpipeclientstream pipeclientstream = new namedpipeclientstream("respose"))
{
pipeclientstream.connect();
using (streamreader reader = new streamreader(pipeclientstream))
{
string val = reader.readtoend();
value = convert.todouble(val);
}
}
//process.waitforexit();
//process.close();
//不在等待了,直接杀死进程,省得拖泥带水,快哉快哉
process.kill();
}
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论