怎样多线程调用同一个EXE,并且只产生一个EXE的进程呢?

number321 2012-05-08 11:08:17
我的一个程序需要调用某个EXE,来获取结果.需要做上千次这样的调用.
为了让速度快一些,我想用多线程.但这样的话,如果同时开50个线程,每个线程都开启一个EXE进程,系统就会同时多出50个这样的EXE对应的进程.线程越多系统里面要调用的那个EXE进程越多.这样感觉不太好.

有没有办法让这些线程同时调用同一个这样的EXE呢?让系统里面只出现一个这样的EXE进程.
...全文
536 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
number321 2012-05-09
  • 打赏
  • 举报
回复
但有些EXE是从网上找的,遇到这种情况应该怎么办呢
avi9111 2012-05-08
  • 打赏
  • 举报
回复
看看process有没其他属性咯,没有就没有了
bdmh 2012-05-08
  • 打赏
  • 举报
回复
google c# 程序 单例
newxdlysk 2012-05-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

引用 1 楼 的回复:

google c# 程序 单例


我的意思是程序的多线程可以同时使用这个EXE的功能.而不是各个线程轮流去使用这个EXE.
但是又可以不产生多个EXE进程,不知道有没有什么办法可以做到呢?直接的或者间接的都可以.
[/Quote]
将EXE封装成dll再调用吧,dll可以加载到共享内存空间,exe的内存空间是独立的。这就像单核cpu无法实现真正意义上的多线程一样,你这个只能轮流使用这个EXE
yangchun1213 2012-05-08
  • 打赏
  • 举报
回复
单例模式,试试吧,不行google和百度,祝你好运
number321 2012-05-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

google c# 程序 单例
[/Quote]

我的意思是程序的多线程可以同时使用这个EXE的功能.而不是各个线程轮流去使用这个EXE.
但是又可以不产生多个EXE进程,不知道有没有什么办法可以做到呢?直接的或者间接的都可以.
wangsong145 2012-05-08
  • 打赏
  • 举报
回复
采用单例模式:

/// </summary> public class OpenExeTool { public static readonly object m_SyncObj = new object(); private static OpenExeTool m_OpenExeTool = null; private OpenExeTool() { this.OpenExe(); } private void OpenExe() { Process.Start("QQ.exe"); } public static OpenExeTool CreateInstance() { if (m_OpenExeTool == null) { lock (m_SyncObj) { if (m_OpenExeTool == null) { m_OpenExeTool = new OpenExeTool(); } } } return m_OpenExeTool; }

/// <summary> /// 调用方式 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Form1_Load(object sender, EventArgs e) { OpenExeTool openExeTool = OpenExeTool.CreateInstance(); }
本研究提供了一套完整的Python实现方案,用于通过图神经网络(GNN)技术预测分子的能量属性。该资源包包含了可直接运行的源代码以及经过处理的标准化数据集,旨在为计算化学与材料科学领域的相关研究提供一套即用型工具。 方案的核心是构建一个基于图结构的分子表示模型。在该模型中,分子被抽象为图数据,其中原子作为节点,化学键作为边。节点与边均被赋予初始的特征向量,这些特征编码了原子类型、键级等关键化学信息。所实现的图神经网络架构通过多轮消息传递机制,能够有效地聚合分子内部的局部化学环境信息,从而学习到分子的全局表示。最终,一个全连接层将该图级表示映射为单一的标量输出,即预测的分子能量。 本资源包中的数据集包含了大量已知分子的结构信息及其对应的能量值,已预先划分为训练集、验证集与测试集,便于进行模型训练与性能评估。代码结构清晰,注释完整,涵盖了从数据加载、图结构构建、模型定义、训练循环到结果可视化的全流程。使用者可通过修改配置文件轻松调整模型超参数,或替换自有数据集进行迁移学习。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
内容概要:本文通过MATLAB实现了一种基于RSSI(接收信号强度指示)的无线传感器网络节点定位算法。文章首先设定仿真环境,包括多个已知坐标的锚节点和一个待定位的未知节点,利用RSSI与距离之间的传播模型将测得的信号强度转换为距离估计,并引入高斯噪声模拟实际测量误差。随后采用多边定位法(最小二乘法)构建线性方程组,求解未知节点的坐标估计值,并计算其与真实位置之间的定位误差。最后通过图形化方式展示锚节点、真实节点、估计节点及其连接关系,并输出关键数据结果。; 适合人群:具备一定MATLAB编程基础和无线通信基础知识的高校学生、科研人员或从事物联网、传感器网络相关工作的技术人员;适合对定位算法原理与仿真实现感兴趣的学习者。; 使用场景及目标:①用于教学演示或科研验证RSSI定位的基本原理;②帮助理解从信号强度到距离估算再到坐标求解的完整流程;③为后续改进算法(如引入滤波、加权最小二乘等)提供基础框架; 阅读建议:此资源以MATLAB代码为核心,建议读者逐段运行代码,结合注释理解每一步的数学原理与物理意义,重点关注RSSI转距离模型、最小二乘法的应用以及误差来源分析,可通过调整参数(如噪声水平、路径损耗指数)观察对定位精度的影响,加深理解。

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧