我想在代码运行时用更多数据填充列表,但窗口没有响应。它适用于MVC应用程序。
private void button1_Click(object sender, EventArgs e)
{
List<string> list = new List<string>();
list.Add(textBox1.Text);
bool pingable = false;
Ping pinger = new Ping();
try
{
PingReply reply = pinger.Send(textBox1.Text);
pingable = reply.Status == IPStatus.Success;
}
catch (PingException)
{
// Discard PingExceptions and return false;
}
while (pingable == false)
{
try
{
PingReply reply = pinger.Send(textBox1.Text);
pingable = reply.Status == IPStatus.Success;
}
catch (PingException)
{
// Discard PingExceptions and return false;
}
Thread.Sleep(1000 * 60 * 30);
}
{
try
{
var mailMsg = new MailMessage();
// To
mailMsg.To.Add(new MailAddress(textBox2.Text));
// From
ect ect
我想在App运行时用新的PC名称填写List。然后我将添加一个for循环来为每台PC执行ping操作,并在发送到联机PC的电子邮件后暂停。 我究竟做错了什么? 或者,当活动正在运行时,您无法与应用互动?
答案 0 :(得分:1)
当它正在运行时,您无法与其进行交互,因为控件将无法返回到UI,直到该功能完成为止。
您需要查看任务和/或异步和等待。 Async
的{{3}}和c#中的Await
。和This is the documentation有关于Tasks和Async / Await的信息记录。