【发布时间】:2014-07-29 13:59:54
【问题描述】:
我有这个活动:
private void TextBoxSearchText_TextChanged(object sender, TextChangedEventArgs e)
{
searchText();
}
我想取消这个并行方法并在文本框文本更改时开始一个新的方法,并且还希望我的文本框能够响应我的新文本输入,在结果进入列表框之前锁定。
List<TextList> oSelected;
private void searchText()
{
string strSearchText = TextBoxSearchText.Text;
oSelected = new List<TextList>();
Parallel.ForEach(oTextList, item =>
{
Match myMatch = Regex.Match(item.EnglishText.ToString(), "\\b" + strSearchText.ToString().ToLower() + @"\w*", RegexOptions.IgnoreCase);
if (!myMatch.Success)
{
return;
}
oSelected.Add(new TextList
{
Id = item.Id,
EnglishText = item.EnglishText
});
});
ListBoxAllTexts.ItemsSource = oSelected;
}
是否可以使用 async 和 awiat 来完成这项工作? 哪一个更适合在近 100 万行文本中搜索文本? 我读了很多关于 async 和 await 但我不明白如何在我的工作中使用它。 谢谢
【问题讨论】:
-
我更新了我的问题,添加了字符串 strSearchText 以了解如何将其实现到 searchText() 方法中以从文本框中获取新文本。为什么我不能在我的方法中创建新字符串?
标签: c# asynchronous parallel.foreach async-await