Пример #1
0
        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();
        }