- 已加入
- 2020年12月21日
- 留言内容
- 12
- 编程经验
- Beginner
我正在开发一个窗口表单程序,它将反复从网络上获取信息。该程序基本上是从我使用的控制台程序中复制的
.
但是,当涉及到窗体程序时,它会使程序变得非常慢。我想要的是数据要一个接一个地输出,但是现在程序似乎已被挂起,然后突然出现了很多行。下面是脚本:
但是一旦循环和
被删除,它是如此顺利。
那有什么问题?
感谢您的关注。
C#:
system.threading.thread.sleep(30*1000)
但是,当涉及到窗体程序时,它会使程序变得非常慢。我想要的是数据要一个接一个地输出,但是现在程序似乎已被挂起,然后突然出现了很多行。下面是脚本:
C#:
using System;
using System.Windows.Forms;
using HtmlAgilityPack;
using System.Net;
using System.IO;
namespace AAstockpriceWin
{
public partial class Form1 : Form
{
private static string Currenthtml = @"http://www.aastocks.com/tc/stocks/market/bmpfutures.aspx?future=200300";
private static string Nexthtml = @"http://www.aastocks.com/tc/stocks/market/bmpfutures.aspx?future=200301";
public static string Html;
public static int A=0;
public Form1()
{
InitializeComponent();
}
private void txtFilename_TextChanged(object sender, EventArgs e)
{
}
private void rd2_CheckedChanged(object sender, EventArgs e)
{
}
private void rd1_CheckedChanged(object sender, EventArgs e)
{
}
private void btnStartStop_Click(object sender, EventArgs e)
{
A++;
if (rd2.Checked) { Html = Nexthtml; } else { Html = Currenthtml; }
if (A % 2 == 0) { lbWorkornot.Text = "Stoped"; } else { lbWorkornot.Text = "Working"; }
while (A % 2 == 1) <<<<<<<<<<<<<<
{
Info();
}
}
private void txtResult_TextChanged(object sender, EventArgs e)
{
}
private void txtTimeinterval_TextChanged(object sender, EventArgs e)
{
}
public void Info()
{
WebClient httpins = new WebClient();
httpins.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0");
httpins.Headers.Add("Method", "GET");
DateTime now = DateTime.Now;
Stream resp = httpins.OpenRead(Form1.Html);
StreamReader resstring = new StreamReader(resp);
string s = resstring.ReadToEnd();
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(s);
resstring.Close();
HtmlNode pricenode = doc.DocumentNode.SelectSingleNode("html/body/form/div[4]/div[1]/div[4]/div[5]/table/tr[1]/td[1]/div[4]");
HtmlNode pricenow = doc.DocumentNode.SelectSingleNode("html/body/form/div[4]/div/div[4]/div[5]/table/tr[7]/td/div[5]");
HtmlNode change = doc.DocumentNode.SelectSingleNode("/html/body/form/div[4]/div[1]/div[4]/div[5]/table/tr[1]/td[2]/div[4]/span");// html / body / form / div[4] / div[1] / div[4] / div[5] / table / tbody / tr[1] / td[2] / div[4] / span
HtmlNode premium = doc.DocumentNode.SelectSingleNode("/html/body/form/div[4]/div[1]/div[4]/div[5]/table/tr[1]/td[3]/div[4]"); //html/body/form/div[4]/div[1]/div[4]/div[5]/table/tbody/tr[1]/td[3]/div[4]
txtResult.Text += $"{now.ToString("HH:mm:ss")}\tPrice: {pricenode.InnerText.Trim()}\tPremiun: {premium.InnerText.Trim().Replace(" 23","")}\tChange: {change.InnerText.Trim()}\tPriceN: {pricenow.InnerText.Trim()}\r\n";
System.Threading.Thread.Sleep(Convert.ToInt32(txtTimeinterval.Text) * 1000); <<<<<<<<<<<<<<<<<<<<
}
}
}
C#:
System.Threading.Thread.Sleep(Convert.ToInt32(txtTimeinterval.Text) * 1000)
那有什么问题?
感谢您的关注。