杀死进程,解决运行异常---让64位程序调用32位程序更流畅

   上一篇随笔中写过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();
 
}

  

转载于:https://www.cnblogs.com/Heavystudio/p/11101932.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值