我一直在谷歌搜索过去几个小时并尝试不同的东西,但似乎不能在这个底部....
当我运行此代码时,内存使用量不断增长.
while (true)
{
try
{
foreach (string sym in stringlist)
{
StreamReader r = new StreamReader(@"C:\Program Files\" + sym + ".xml");
XmlSerializer xml = new XmlSerializer(typeof(XMLObj), new XmlRootAttribute("rootNode"));
XMLObj obj = (XMLObj)xml.Deserialize(r);
obj.Dispose();
r.Dispose();
r.Close();
}
}
catch(Exception ex)
{
Console.WriteLine(ex.ToString());
}
Thread.Sleep(1000);
Console.Clear();
}
Run Code Online (Sandbox Code Playgroud)
XMLObj是一个自定义对象
[Serializable()]
public class XMLObj: IDisposable
{
[XmlElement("block")]
public List<XMLnode> nodes{ get; set; }
public XMLObj() { }
public void Dispose()
{
nodes.ForEach(n => n.Dispose());
nodes= null;
GC.SuppressFinalize(this);
}
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试添加GC.Collect(); 但这似乎没有做任何事情.
Socket tempSocket;
try
{
IPAddress addr = IPAddress.Parse(ip);
IPEndPoint endpt = new IPEndPoint(addr, port);
tempSocket = new Socket(endpt.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
tempSocket.Connect(endpt);
}
catch
{
OnDisconnected("Connection Error");
return false;
}
Run Code Online (Sandbox Code Playgroud)
我的控制台程序不断崩溃,并显示错误消息,指出存在套接字异常,因为目标机器主动拒绝连接。这很好,因为有时另一端没有运行,这是正常的。我的问题是,如何正确处理这个问题,以便程序不会崩溃,而只是返回 False?我尝试用谷歌搜索这个,但找不到任何东西。
