h 听说所有方面都有以下的法典,期待优化,因为一刀切的记忆中,这一惯例被大量使用。
第一个优化办法是将铺设装置从例行下载中移出,使之成为舱面,然后在常规情况下清除。
您可以建议任何其他优化,或把我引向可能有助于我这样做的一些资源(网络文章、书籍等)。
i m 想用固定的(大的)规模缓冲来替换护卫者......或也许会形成较大的护卫者
预先感谢。
StreamWriter _writer; StreamReader _reader; public string Download(string msgId) { _writer.WriteLine("BODY <" + msgId + ">"); string response = _reader.ReadLine(); if (!response.StartsWith("222")) return null; bool done = false; StringBuilder body = new StringBuilder(256* 1024); do { response = _reader.ReadLine(); if (OnProgress != null) OnProgress(response.Length); if (response == ".") { done = true; } else { if (response.StartsWith("..")) response = response.Remove(0, 1); body.Append(response); body.Append(" "); } } while (!done); return body.ToString(); }