-1
在我的Windows窗體應用程序中,我有一種方法可以搜索從包含大約150,000字的SortedDictionary在搜索框中輸入的文本,然後將結果添加到列表框中。在我的searchBox_TextChanged事件處理程序中,我正在創建一個新線程並啓動它,但根本不起作用。在單線程版本中,我的應用程序正在運行,但速度有點慢。我希望搜索更快。C#中的多線程無法啓動
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();
}
我知道某個地方線程應該被殺死,但是在哪裏以及如何?
雖然這不是規則說謝謝,但我想特別說一聲謝謝。我真的有工作。正如我所想。 雖然這對我來說有點實施,但我做到了。 謝謝 – Hadi 2014-11-24 19:09:51
@哈迪不客氣。樂於幫助.. – 2014-11-24 19:11:12
我注意到我的搜索引擎有問題。我已經實現的基本思想是:在searchBox_TextChaned事件處理程序中,我實現了將最後一個字符作爲NextMatch傳遞給Matcher。例如,如果我輸入'compute'直到找到以'compute'開頭的所有單詞,然後如果輸入'r',那麼'r'將作爲NextMatch的字符傳遞,並且將找到以'computer'開頭的所有單詞,但再次當我刪除'r'時,'e'作爲NextMatch的字符傳遞,但我想要以'compute'開頭的所有單詞的列表。請提出任何提示? – Hadi 2014-11-25 08:03:42