【发布时间】:2012-01-25 20:20:39
【问题描述】:
我有一个主窗体类,其中包含一个我想更改的列表框。该框填充了以耗时的方法创建的项目。现在看起来像这样(手动发明一个例子,可能不是有效的 C#):
List<string> strings = StaticClassHelper.GetStrings(inputString);
foreach(string s in strings)
{
listBox1.Add(s);
}
//meanwhile, in a different class, in a different file...
public static List<string> GetStrings(inputString)
{
List<string> result = new List<string>();
foreach(string s in inputString.Split('c'))
{
result.Add(s.Reverse());
Thread.Sleep(1000);
}
return result;
}
我想做的是在发现新字符串时定期更新列表框。当线程方法在同一个类中时,我发现的其他答案有效,因此您可以设置事件处理程序。我在这里做什么?
【问题讨论】:
-
澄清一下,GetStrings 获取每个字符串的速度很慢,并且您希望在每次找到字符串时在后台更新列表框的问题?
-
@Bort:是的,就是这样。
标签: c# .net winforms multithreading backgroundworker