private void MainForm_Load(object sender, EventArgs e) { // list ServerList.BeginUpdate(); foreach (Server.server_t srv in Server.servers) { ListViewItem item = new ListViewItem(); item.Text = srv.type; item.Tag = srv.addr + ":" + srv.port; item.SubItems.Add(srv.addr + ":" + srv.port); item.SubItems.Add("unknow"); item.SubItems.Add("-1"); item.SubItems.Add("-1"); item.SubItems.Add("-1"); ServerList.Items.Add(item); } ServerList.EndUpdate(); Application.DoEvents(); timer.Tick += (obj, eArgs) => { time--; if (time == 0) { UpdateList(); time = 30; } else if (time < 30) { Label_Info.Text = "将在 " + time + "秒 后刷新..."; } }; timer.Interval = 1000; timer.Start(); new System.Threading.Thread(() => { System.Threading.Thread.Sleep(1000); Invoke(new Action(() => { UpdateList(); })); time = 30; }).Start(); }