自從我用C#編寫代碼之後,我正在爲自己和朋友創建一些小工具,但遇到了一個問題,阻止了我的繼續。C#HtmlAgilityPack刷新值
問題是這樣的。我想使用HmtlAgilityPack來獲取一個不斷變化的值來將它用於幾個不同的操作。但問題是,在我重新啓動程序之前,該值會停留在相同的值上。
因此,這裏是我使用的代碼:
public static void Main(string[] args)
{
Console.WriteLine("Running the program!");
Console.WriteLine("Reading the value!");
int i = 0;
string url = "Website";
while (i < 300)
{
i++;
HtmlWeb web = new HtmlWeb();
HtmlDocument LoadWebsite = web.Load(url);
HtmlNode rateNode = LoadWebsite.DocumentNode.SelectSingleNode("//div[@class='the-value']");
string rate = rateNode.InnerText;
Console.WriteLine(i + ". " + rate);
Thread.Sleep(1000);
}
Console.WriteLine("Done");
Console.ReadLine();
}
所以在這裏第一次加載網頁。接下來它從div獲取值。之後它寫入值,以便我可以檢查它。但它只是寫了相同的價值。
我的問題是,我不知道我必須改變以獲得最新的值,因爲值每隔幾秒改變一次,我需要從我的網站獲得最新值。這就像保持系統運行所需的價值。
後'Thread.Sleep',明確一切即'網= null','LoadWebsite = null',檢查下一次迭代是否能給予你同樣的記錄或沒有。 –
謝謝你的建議,但它並沒有改變,或者至少沒有改變,因爲它應該快。也許有些東西必須完全改變,比如先加載另一端,然後再加載第一個端口,或者清理程序的緩存或類似的東西來獲取值。 順便說一句,價值已經改變,但只有像2分鐘,這是緩慢的方式一次 – Varmint
雖然與你問的無關,你可以使用'定時器',而不是睡在主應用程序中導致沒有響應狀態的主線程。 – mcy