簡體   English   中英

從C#中的多個Web文件讀取第一行的有效方法

[英]Efficient way to read first lines from several web files in C#

有一個Web服務器,其中包含帶有不同新聞類別的多個長文件(> 500Kb)。 我只需要獲取每個類別的最新新聞,即文件的第一行(通常<1Kb,但可以更多),並使下載速度更快,並且由於連接速度較慢,我的想法是逐行閱讀,因此下載最小數據量。 目前,我執行以下代碼,但是從下載完整文件來看,這似乎並沒有太大的改善。

foreach(var newsType in newsTypes)
{
    var request = WebRequest.Create("http://www.xxxx.com/" + newsType) as HttpWebRequest;
    request.Timeout = 5000;
    using (var response = request.GetResponse() as HttpWebResponse)
    {
        using (var reader = new StreamReader(response.GetResponseStream()))
        {
            while (!reader.EndOfStream)
            {
                var fileRowCSV = reader.ReadLine();
                ...
                if (old-news) break;
                ...
        }
    }
}

是否存在需要修改的設置,因此並非所有文件都可以傳輸? 我可以某種方式重用一個連接以讀取其他文件嗎? 關於如何改進流程的任何想法?

謝謝

我認為.NET Framework中沒有內置的方法可以做到這一點。 但是,如果您只是想加快整個過程的速度,則可以(相對容易地,我認為)並行化外部foreach循環。

另外, 是一個MSDN示例,顯示了從Web下載文件的進度。 您應該能夠使用該示例中的代碼來完成所需的工作:每X個字節之后,檢查是否已收到old-news ,如果是,則取消下載。 合理的警告,不僅是幾行代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM