用VS运行的程序系统内存不断变大,帮忙找下那里有问题

weimengfeiwu 2017-10-27 04:22:50
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (Global.gv_AppPath.Substring(Global.gv_AppPath.Length - 1, 1) != "\\")
{
Global.gv_AppPath = Global.gv_AppPath + "\\";
}
//先尝试连接服务器
Global.gv_User = Global.ReadIniData("Connect", "user", "", Global.gv_AppPath + "Calc_CLJL.ini");
Global.gv_Pass = Global.ReadIniData("Connect", "pass", "", Global.gv_AppPath + "Calc_CLJL.ini");
Global.gv_Server = Global.ReadIniData("Connect", "server", "", Global.gv_AppPath + "Calc_CLJL.ini");
if (Global.gf_ConnectServer(Global.gv_User, Global.gv_Pass, Global.gv_Server) == true)
{


//创建FrmMain 类
FrmMain fm = new FrmMain();
fm.OpenMap();
fm.GetZDLH_dll();
fm.GetZDHZ_dll();

string JL_dir = Global.gv_AppPath + "C170701" + "\\" + "C170701";
// rst = open_jl(JL_dir);
fm.rst = fm.Openjl(JL_dir);
fm.JLJS_DLL();
//开启文件流

for (int i = 1912; i < 8000; i = i + 1000)
{
if (Global.conn.State != ConnectionState.Open)
{
Global.conn.Open();
}
int i1 = i + 1000;
string sql = "select * from ( select rownum as rowno,DBLM,ZM from DIC_ZM where ROWNUM < " + i1 + ") where rowno >=" + i;
DataTable dt = Global.SelectBySQL(sql);
for (int j = 0; j < dt.Rows.Count; j++)
{

string rownum = dt.Rows[j][0].ToString();
string DBLM = dt.Rows[j][1].ToString();
string ZM = dt.Rows[j][2].ToString();
string s = "行数:" + rownum + ",电报略码:" + DBLM + ",站名:" + ZM;
if (Global.conn.State != ConnectionState.Open)
{
Global.conn.Open();
}

for (int k = 0; k < 8000; k = k + 1000)
{
int k1 = k + 1000;
string sql2 = "select * from ( select rownum as rowno,DBLM,ZM from DIC_ZM where ROWNUM < " + k1 + ") where rowno >=" + k;
DataTable dt2 = Global.SelectBySQL(sql2);
//创建文件批量写入
string filename = @"C:\Users\runnut\Desktop\cljl\cljl22.csv";
StreamWriter sw = new StreamWriter(filename, true);
// string res2 = "";
StringBuilder sb = new StringBuilder();
for (int l = 0; l < dt2.Rows.Count; l++)
{
string rownumd = dt2.Rows[l][0].ToString();
string DBLMd = dt2.Rows[l][1].ToString();
string ZMd = dt2.Rows[l][2].ToString();

// string sd = "行数:" + rownumd + ",电报略码:" + DBLMd + ",站名:" + ZMd;
//计算车流径路

string res = null;
if (DBLM.Length == 3 && DBLMd.Length == 3)
{
res = rownum + "," + rownumd + "," + DBLM + "," + DBLMd + "," + @fm.Cal2(DBLM, DBLMd);
}
// res2 = res2 +"\r\n"+ res;
sb = sb.Append("\r\n" + res);

}
dt2.Dispose();
//写入文件中
sw.WriteLine(sb);
sb.Clear();
sb = null;
sw.Close();
sw.Dispose();
System.Diagnostics.Trace.WriteLine("行号-------------" + rownum);
}
Global.conn.Close();
//Console.WriteLine(rownum + "," + DBLM + "," + ZM );
}
dt.Dispose();
}


}
else
{
Application.Run(new FrmMain());
}
}
}
...全文
947 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
roa_finder 2017-11-07
  • 打赏
  • 举报
回复
是不是调用的动态链接库dll里边会有内存泄漏的问题呢!
xdashewan 2017-10-30
  • 打赏
  • 举报
回复
如果实在无法发现源头,可以把数据库和文件操作尝试改成using写法
weimengfeiwu 2017-10-30
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
fm.OpenMap(); fm.GetZDLH_dll(); fm.GetZDHZ_dll(); string JL_dir = Global.gv_AppPath + "C170701" + "\\" + "C170701"; // rst = open_jl(JL_dir); fm.rst = fm.Openjl(JL_dir); fm.JLJS_DLL(); 目测是这部分代码造成的。
why
exception92 2017-10-27
  • 打赏
  • 举报
回复
fm.OpenMap(); fm.GetZDLH_dll(); fm.GetZDHZ_dll(); string JL_dir = Global.gv_AppPath + "C170701" + "\\" + "C170701"; // rst = open_jl(JL_dir); fm.rst = fm.Openjl(JL_dir); fm.JLJS_DLL(); 目测是这部分代码造成的。

110,538

社区成员

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

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

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