在我的Windows窗体应用程序中,我有一个方法,从SortedDictionary搜索包含大约150,000个单词的搜索框中输入的文本,然后将结果添加到列表框中。在我的searchBox_TextChanged事件处理程序中,我正在创建一个新线程并启动它但根本不起作用。在单线程版本中,我的应用程序正在运行,但有点慢。我希望搜索更快。
private void searchAllWords()
{
if (searchBox.Text.Length > 0)
{
var match = allWords.Keys.Where(x => x.StartsWith(searchBox.Text.Trim().ToLower())).ToArray();
listBoxWords1.Items.AddRange(match);
}
}
private void searchBox_TextChanged(object sender, EventArgs e)
{
listBoxWords1.Items.Clear();
Thread searchThread = new Thread(new ThreadStart (searchAllWords));
searchThread.Start();
}
我知道线程应该被杀死但是在哪里和如何?