private bool _ResumeFromDisk() { if (!File.Exists(DiskFilePath)) { throw new IOException("there's no data file is found in " + DiskFilePath); } Stream stream = null; try { stream = new FileStream(DiskFilePath, FileMode.Open, FileAccess.Read, FileShare.None); BinaryFormatter formatter = new BinaryFormatter(); AddrGraph = (Graph)formatter.Deserialize(stream); stream.Close(); } catch (System.Exception ex) { if (stream != null) stream.Close(); throw new Exception("Deserialization failed! Message: " + ex.Message); } if (AddrGraph != null && AddrGraph.NodeTable != null && AddrGraph.root != null) { return true; } else { return false; } }