内存占用问题

x1224 2008-07-11 04:59:01


private void Runsoft()
{
string[] ini = this.GetIni(); //得到要检测要启动软件的配置
while (true)
{
string processlist = GetCurProccesslist();
for (int i = 0; i < ini.Length; i++)
{
string initest = ini[i];
string filename = GetFileName(initest).ToLower().Replace(".exe","") ;
if (processlist.IndexOf(filename) == -1) //判断是否启动
{
StratPorcess(initest); //启动软件
}
}
Thread.Sleep(60000);
}
}

/// <summary>
/// 启动一个程序
/// </summary>
/// <param name="filepath"></param>
private void StratPorcess(string filepath)
{
try
{
//Process.Start(filepath);
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = filepath;
//info.CreateNoWindow = true;
info.UseShellExecute = true;
Process.Start(info);
//info.
}
catch { }
}

/// <summary>
/// 根据路径得到文件名
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
private string GetFileName(string path)
{
FileInfo ff = new FileInfo(path);
return ff.Name;
}

/// <summary>
/// 得到进程列表。用 | 线分开
/// </summary>
/// <returns></returns>
private string GetCurProccesslist()
{
Process[] process = Process.GetProcesses();
string psoftname = "";
foreach (Process p in process)
{
psoftname += "|" + p.ProcessName.ToLower();
}
return psoftname;
}

/// <summary>
/// 读取配置文件
/// </summary>
/// <returns></returns>
private string[] GetIni()
{
string inipath = @"C:\a.txt";
StreamReader sr = new StreamReader(inipath);
string inistr = sr.ReadToEnd();
sr.Close();
sr.Dispose();

string[] spstr ={ "\r\n"};
return inistr.Split(spstr,StringSplitOptions.RemoveEmptyEntries);
}


我做了一个系统服务,就是阁段时间去检测我的另外几个软件是否已经运行,如果没有则运行它,
但是我发现,我的服务随着时间的增加内存占有量会越来越达,
还有一个问题是,我用Process.Start(info);去启动外部程序,进程里面有进程了,但是我在桌面上看不到那个软件...

麻烦各位大虾指点哈
...全文
50 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
x1224 2008-07-11
  • 打赏
  • 举报
回复
怎么没人来帮忙啊~~~..高手出来现哈身啊

110,043

社区成员

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

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

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