我正在尝试在单独的线程中运行 for 循环,以便 UI 应该是响应式的并且进度条是可见的。
问题是我不知道该怎么做:)。在这段代码中,进程在单独的线程中开始,但代码的下一部分同时执行。messageBox 被显示并且结果永远不会被返回(例如列表框的 selected index 属性永远不会被设置)。
即使我使用“taskEx.delay()”,它也不起作用。
TaskEx.Run(() =>
{
for (int i = 0; i < sResults.Count(); i++)
{
if (sResults.ElementAt(i).DisplayIndexForSearchListBox.Trim().Contains(ayaStr))
{
lstGoto.SelectedIndex = i;
lstGoto_SelectionChanged(lstReadingSearchResults, null);
IsIndexMatched = true;
break;
}
}
});
//TaskEx.delay(1000);
if (IsIndexMatched == true)
stkPanelGoto.Visibility = Visibility.Collapsed;
else //the index didn't match
{
MessagePrompt.ShowMessage("The test'" + ayaStr + "' does not exist.", "Warning!");
}
谁能告诉我如何使用带有“for”或“foreach”循环的多线程?