foreach
ループが各アイテムの検索をList<>
で終了したときにコールバックを起動する必要があります。非同期呼び出し後のコールタスクメソッド
private async void startSearchBtn_Click(object sender, EventArgs e)
{
await Search(files, selectTxcDirectory.SelectedPath, status);
}
private static async Task Search(List<string> files, string path, Label statusText)
{
foreach (string file in files)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(file);
statusText.Text = "Started scanning...";
using (XmlReader reader = XmlReader.Create(new StringReader(xmlDoc.InnerXml), new XmlReaderSettings() { Async = true }))
{
while (await reader.ReadAsync())
{
if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "LineName"))
{
Console.WriteLine(reader.ReadInnerXml());
}
}
}
}
}
どうすればいいですか?
パラメータとしてデリゲートを渡し、あなたに必要な 'foreach'ループでそれを起動しないのはなぜ?何か不足していますか? –
http://msdn.microsoft.com/it-it/library/system.asynccallback.aspx – Saturnix
@SriramSakthivel @SriramSakthivel @SriramSakthivelあなたは何も欠けていません。なぜなら、デリゲートをparamとして渡してforeachループは8-です)答えとして投稿してください。 – jskidd3