不在每一行循环,只看第一行c#

不在每一行循环,只看第一行c#,c#,asynchronous,async-await,messagedialog,C#,Asynchronous,Async Await,Messagedialog,好的,我正在为windows 8应用商店制作一个应用程序,但是我使用MessageDialog来处理错误,我不太清楚为什么,但是当我包含MessageDialog时,foreach循环似乎停止循环每一行,只查看第一行,所以我的代码如下 try { StorageFolder folder = Windows.ApplicationModel.Package.Current.InstalledLocation; StorageFile storageFile = await fol

好的,我正在为windows 8应用商店制作一个应用程序,但是我使用MessageDialog来处理错误,我不太清楚为什么,但是当我包含MessageDialog时,foreach循环似乎停止循环每一行,只查看第一行,所以我的代码如下

try {
    StorageFolder folder = Windows.ApplicationModel.Package.Current.InstalledLocation;
    StorageFile storageFile = await folder.GetFileAsync("students.txt");
    var text = await Windows.Storage.FileIO.ReadLinesAsync(storageFile);

    foreach (var line in text)
    {
        string name = "" + line.Split('|')[0];
        string testTaken = "" + line.Split('|')[1];

        if (your_name.Text == name)
        {
            if (testTaken == "false") 
            {
                pageTitle.Text = name + "'s test";
                enter_name_grid.Opacity = 0;
                questions_grid.Opacity = 1;
                var md = new MessageDialog("Enjoy the test");
                await md.ShowAsync();
            }
            else
            {
                var md1 = new MessageDialog("You have already taken the test");
                await md1.ShowAsync();
            }
        }
        else
        {
            pageTitle.Text = "Test";
            var md2 = new MessageDialog("You're not on the list");
            await md2.ShowAsync();
        }
    }
} catch (Exception e) {
    var mderror = new MessageDialog("{0} Exception caught: " + e);
    mderror.ShowAsync();
}

我现在真的走到了死胡同,所以任何能给我一些启示或帮助的人都将不胜感激!谢谢

作为旁注,它以前在使用内联错误消息(在实际应用程序上显示错误)时起作用,你的messageDialog不是模态吗?它的阻塞执行是否与messagebox类似?@TMcKeown是否有可能解决此问题?是的,这取决于您希望如何处理它。。。如果发现此问题,是否应设置一个msg变量,
从foreach中断开
,然后在此处显示消息?你必须确定这一点。。