我对 BackgroundWorkers 的想法是全新的,所以这让我有点困惑。
所以我创建了一个新的 WPF 应用程序并创建了一个 BackgroundWorker 和 List 类变量:
public partial class MainWindow : Window
{
private BackgroundWorker bw = new BackgroundWorker();
private List<int> tempList = new List<int>();
...
然后我使用 BackgroundWorker 来填充该列表:(在同一个类中)
private void bw_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
Random r = new Random();
for (int j = 1; j <= 100; j++)
{
for (int i = 0; i < 1000; i++)
{
tempList.Add(r.Next(100));
}
...
}
}
现在这是让我...
填充该列表的代码似乎工作正常。当我逐步执行它时,*它的行为与我预期的一样,直到代码退出 bw_DoWork 方法的那一刻。*在那之后,它恢复为一个空列表。我曾一度将列表更改为静态,但没有任何改变。
那么为什么这个 List 在整个程序执行过程中没有持续存在呢?
我(曾经)几乎可以肯定,这是为每个线程分配在不同内存区域中的列表的一些问题,但我对 BackgroundWorker 和 MultiThreading 的了解太少了,无法自行诊断。
任何帮助,将不胜感激。