我试图创建一个启动然后GUI应用程序后,它已经显示我希望它运行使用Web客户端()其他功能,一旦做它的查询是应该输出到页面上的标签。我已经尝试过使用显示和其他一些事件,但是所有这些事件在完成查询之前都停止加载GUI。有运行功能运行异步或后台工作麻烦
我使用一个线程尝试,它不会允许更新标签,因为它是在不同的线程,我试过异步但不能设法得到某种原因导致现在我在中间尝试一个后台工作人员,我没有得到任何错误,但标签没有得到更新。
现在我有一些看起来像这样
public project()
{
InitializeComponent();
BackgroundWorker bw = new BackgroundWorker();
bw.DoWork += querysite;
}
private void querysite(object sender, DoWorkEventArgs e)
{
WebClient myWebClient = new WebClient();
myWebClient.Headers.Add("user-agent", "libcurl-agent/1.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
byte[] myDataBuffer = myWebClient.DownloadData("http://example.com/SystemStatus");
string download = Encoding.ASCII.GetString(myDataBuffer);
if (download.IndexOf("is online") !=-1)
{
systemStatusLabel.Text = "System is up";
}
else
{
systemStatusLabel.Text = "System is down!";
}
throw new NotImplementedException();
}
是不是我做错了吗?有没有更好的方法来完成这一点?我一直坚持这几个小时,并找不到任何我需要它做的事情。
这工作得很好,最初得到了一个混蛋,因为我无法调用bw.RunWorkerAsync();从表单中出现的事件出于某种原因,但是我在声明之后立即放置它,并且它完美地工作。非常感谢你! – zfb