所以我正在处理一个自动更新服务器列表,它加载所有服务器 ip:port 组合并将它们显示到列表视图中。我在一个线程中执行所有这些操作,因此我需要调用我的控件来对它们执行操作。这是我的调用方法..
public void invoke(MethodInvoker m) {
try { invoke(m); } catch {}
}
这是我的更新线程方法:
public void updater()
{
while (autoUpdate)
{
reader = new StreamReader("servers.list");
servers = reader.ReadToEnd().Split('\n');
reader.Close();
invoke(new MethodInvoker(delegate { list.Clear(); }));
foreach (String s in servers)
{
String[] part = new String[] { s };
invoke(new MethodInvoker(delegate { list.Items.Add("Server Name").SubItems.AddRange(part); }));
}
Thread.Sleep(5000);
}
}
有谁知道它为什么这样做?我以前做过这样的应用程序,没有遇到过这个问题。也许我错过了一些东西,但任何帮助将不胜感激。
谢谢。