有时候在创建临时文件或文件夹,使用完成后,释放失败,删除提示占用,又不能结束主程序,就可以通过别的方法来解决

比如,另外创建一个程序,单独执行任务,完成后结束程序,并返回执行结果,上述问题就能解决。

一、创建需要调用的程序

新建一个Winform窗体

一般主函数是这样的

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Windows.Forms;
 4
 5 namespace Test
 6 {
 7     static class Program
 8     {
 9         /// <summary>
10         /// 应用程序的主入口点。
11         /// </summary>
12         [STAThread]
13         static void Main()
14         {
15             Application.EnableVisualStyles();
16             Application.SetCompatibleTextRenderingDefault(false);
17             Application.Run(new Form1());
18         }
19     }
20 }

还包含一个Form1。

将启动窗体的代码删掉,Form1删除,给Main函数加上参数。

 1 /// <summary>
 2 /// 应用程序的主入口点。
 3 /// </summary>
 4 [STAThread]
 5 static int Main(string[] args)
 6 {
 7     int i = 0;
 8     if (args != null)
 9     {
10         #region 逻辑代码
11
12         #endregion
13     }
14     return i;
15 }

View Code

其中,i为返回的值。

二、在主程序中调用上述程序

将生成的Test.exe添加到主程序的资源中

在代码调用方法如下

 1 int result = 0;
 2 Process myProcess = new Process();
 3 try
 4 {
 5     string fileName = Path.Combine(Business.Datas.TempDirectory, "Test.exe");
 6     if (!File.Exists(fileName))
 7     {
 8         byte[] bytes = global::HuaXing.ExamOperation.WindowsManager.Properties.Resources.Text;
 9         File.WriteAllBytes(fileName, bytes);
10     }
11     string para = parms; //parms的格式为 "参数1 参数2 参数3",每个参数之间用空格分隔,参数中有空格可以用""将参数括起来
12     ProcessStartInfo myProcessStartInfo = new ProcessStartInfo(fileName, para);
13     myProcess.StartInfo = myProcessStartInfo;
14     myProcess.Start();
15     while (!myProcess.HasExited)
16     {
17         myProcess.WaitForExit();
18     }
19     result = myProcess.ExitCode;
20 }
21 catch (Exception ex)
22 {
23     Logger.LogInfo(ex);
24 }

其中result为返回的参数。

此方法可以用来临时解决很多棘手的问题。

转载于:https://www.cnblogs.com/yunluan/p/6339608.html

编写可执行程序,其它程序调用,并返回数据,C#相关推荐

  1. 小程序中ajax返回数据,微信小程序调用接口返回数据或提交数据

    /*习惯用ajax了,则把(wx.request)封装一下, 调用方式 1.先引入:const http = require('../../js/http.js') 2.使用方式:http.post或 ...

  2. 关于Laravel中使用response()方法调用json()返回数据unicode编码转换的问题解决

    关于Laravel中使用response()方法调用json()返回数据unicode编码转换的问题解决 参考文章: (1)关于Laravel中使用response()方法调用json()返回数据un ...

  3. 18_Android中Service的生命周期,远程服务,绑定远程服务,aidl服务调用,综合服务案例,编写一个应用程序调用远程支付宝远程服务场景

    ============================================================================ 服务的生命周期: 一.采用start的方式开始 ...

  4. 小程序中ajax返回数据,请问在小程序中如何从请求success中将数据返回给对象data?...

    我的代码如下: App({ data: { posts: {} }, onLaunch(event) { // console.log('onLaunch'); var that = this; sw ...

  5. 编写跨平台Java程序注意事项

    使用Java语言编写应用程序最大的优点在于"一次编译,处处运行",然而这并不是说所有的Java程序都具有跨平台的特性,事实上,相当一部分的Java程序是不能在别的操作系统上正确运行 ...

  6. 讲解关于编写跨平台Java程序时的注意事项 选择自 tiewen 的 Blog

    使用Java语言编写应用程序最大的优点在于"一次编译,处处运行",然而这并不是说所有的Java程序都具有跨平台的特性,事实上,相当一部分的Java程序是不能在别的操作系统上正确运行 ...

  7. 119.编写函数,该函数的功能是计算下列级数之和,和值返回调用函数,数据由主函数输入

    计算下列级数之和 题目:编写函数,该函数的功能是计算下列级数之和,和值返回调用函数,数据由主函数输入 效果 讲解 代码 题目:编写函数,该函数的功能是计算下列级数之和,和值返回调用函数,数据由主函数输 ...

  8. 编写一个C程序,实现以下功能:编写一个常规的函数和一个递归函数,两个函数均能将输入的一个字符串以按反序形式的字符串作为返回值。在main函数中输入一行字符串,分别调用两个函数,输出反序后的字符串。

    题目要求: 编写一个C程序,实现以下功能:编写一个常规的函数和一个递归函数,两个函数均能将输入的一个字符串以按反序形式的字符串作为返回值.在main函数中输入一行字符串,分别调用两个函数,输出反序后的 ...

  9. 算法训练 加法运算(你的表妹正在学习整数的加法,请编写一个程序来帮助她学习。该程序调用了一个函数GetTwoInts,由它来返回两个从键盘读入的100以内的整数,然后计算这两个整数之和,并把答案显示)

    问题描述 你的表妹正在学习整数的加法,请编写一个程序来帮助她学习.该程序调用了一个函数GetTwoInts,由它来返回两个从键盘读入的100以内的整数,然后计算这两个整数之和,并把答案显示出来.要求: ...

  10. 编写一个汇编语言程序,完成以下要求。从BUF单元处定义有10个带符号字数据:-1,3,24,94,62,72,55,0,-48,99,试找出他们中的最大值和平均值,并以此分别存放至该数据区的后两个单元

    编写一个汇编语言程序,完成以下要求.从BUF单元处定义有10个带符号字数据:-1,3,24,94,62,72,55,0,-48,99,试找出他们中的最大值和平均值,并以此分别存放至该数据区的后两个单元 ...

最新文章

  1. 再读《数量生态学:R语言应用》
  2. Java客户端操作zookeeper:创建永久节点和临时节点
  3. 看了这个总结,其实 Matplotlib 可视化,也没那么难!
  4. Arrays练习:字符串倒序排列
  5. WEB前端 基础知识汇总
  6. 基于ZooKeeper实现分布式锁
  7. 13.ThreadPoolExecutor线程池之submit方法
  8. Net任意String格式转换为DateTime类型
  9. ASP.NET2.0中控件的简单异步回调
  10. 三星5G手机全球销量200万台:年底将翻番
  11. 艾伟:自己实现memcached客户端库
  12. python爬取斗鱼礼物数据_Python---20行代码爬取斗鱼平台房间数据(上)
  13. 扒一扒国产 Linux 操作系统架构是怎么设计的 ?
  14. 在Solaris下安装中文语言包
  15. js-05--对象是什么、创建对象、对象使用、操作对象、遍历对象、内置对象、Math、任意范围随机数、日期对象、字符串对象
  16. 自制Openerp图表
  17. 【强迫症患者的福音】Win10去掉桌面快捷方式箭头
  18. QT实现图片缩放的同时标记指定坐标
  19. Linux远程联机服务(二)——Rsh服务器安装与使用详解
  20. Pycharm2018激活注册码(有效期至2019.05)python

热门文章

  1. 《Unix环境高级编程》学习笔记
  2. PeopleRank从社交网络中发现个体价值
  3. python - list 列表推导式
  4. kuangbin专题十二 基础DP1【从入门到熟练】【10题】
  5. 关于hbase安装出现的问题
  6. hammer的初始化及移动端各种滑动
  7. 词法分析(1)...
  8. 静态修饰词static以及图解分析
  9. JQuery CSS 基本选择器 详解
  10. php中的http是什么意思,请问php中三种http请求方式有什么区别呢(cURL,stream,socket)...