从调度程序继续执行前循环

我有一个前置循环,我在里面使用了调度程序,我里面有另一个前轮。我想在检查结果后继续第一个前叉。


bool isNude = false;

var SearchTask = Task.Run(async () =>

{

    foreach (var file in await GetFileListAsync(GlobalData.Config.DataPath))

    {

        isNude = false;

        if (!ct.IsCancellationRequested)

        {

            await Dispatcher.InvokeAsync(() =>

            {

                if (ButtonNude.IsChecked == true)

                {

                    foreach (var itemx in nudeData)

                    {

                        if (itemx.Equals(Path.GetFileNameWithoutExtension(file.FullName)))

                        {

                            isNude = true;

                            break;

                        }

                    }

                }

                if (isNude)

                    continue;


            }, DispatcherPriority.Background);

        }

    }

}, ct);

但是继续不可用,我该怎么做?


慕森王
浏览 67回答 1
1回答

哔哔one

正如我在评论中提到的,您的 lambda for 不知道它是否在循环中被调用,因此没有可用的。您需要 使用 来退出等待的任务,以便您的代码可以在等待的任务之后继续。Dispatcher.InvokeAsynccontinuereturnbool isNude = false;var SearchTask = Task.Run(async () =>{&nbsp; &nbsp; foreach (var file in await GetFileListAsync(GlobalData.Config.DataPath))&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; isNude = false;&nbsp; &nbsp; &nbsp; &nbsp; if (!ct.IsCancellationRequested)&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; await Dispatcher.InvokeAsync(() =>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (ButtonNude.IsChecked == true)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; foreach (var itemx in nudeData)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (itemx.Equals(Path.GetFileNameWithoutExtension(file.FullName)))&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; isNude = true;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (isNude)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return; // continue -> return&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // other code&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }, DispatcherPriority.Background);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // <--- code continues here after return&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }}, ct);
打开App,查看更多内容
随时随地看视频慕课网APP