首先,我想说我是 C# 的新手,所以我不太清楚后台工作人员应该如何实现。我有一个 GUI 程序,它基本上可以 ping 域并将响应返回到文本框。我能够让它正常工作,但是,它冻结了代码,因为它运行在同一个线程上,这就是我试图实现后台工作程序的原因。这是基本设置
private void button1_Click(object sender, EventArgs e)
{
url = textBox1.Text;
button1.Enabled = false;
button2.Enabled = true;
bgWorker.DoWork += new DoWorkEventHandler(bgWorker_DoWork);
bgWorker.RunWorkerAsync();
}
private void bgWorker_DoWork(object sender, DoWorkEventArgs e)
{
do
{
if (bgWorker.CancellationPending)
break;
Invoke((MethodInvoker)delegate { monitor(); });
} while (true);
}
public void monitor()
{
textBox2.AppendText("Status of: " + url + "\n");
Status(url);
System.Threading.Thread.Sleep(30000);
}
private void Status(string url)
{
// This method does all the ping work and also appends the status to the Text box as it goes through , as OK or down
}
我之前没有和 bgworkers 一起工作过,你可以想象这很令人困惑。我看过很多其他的文章,但似乎无法理解。对不起,如果代码看起来很疯狂,我正在努力学习。
鸿蒙传说
BIG阳
天涯尽头无女友
相关分类