gpt4 book ai didi

c# - 在循环中顺序执行函数而不阻塞ui

转载 作者:太空宇宙 更新时间:2023-11-03 21:28:52 24 4
gpt4 key购买 nike

我需要一个接一个地执行 3 个函数。一个等待另一个执行。这也嵌套在一个循环中。如何让循环在循环之前等待最后一个任务完成。

这是我目前所拥有的:

    private void Foo()
{
string[] files = GetFilesFromDir(@"C:\Bar\");
if (files == null || files.Length < 0) { return; }

for(int i = 0; i < files.Length; i++)
{
tbSked.Text = files[i];
Task t1 = Task.Factory.StartNew(()=>LoadFile());
t1.ContinueWith((a) => SQLUpdate());
t1.ContinueWith((b) => RestartTimer());
}
}

Wich 有效(不会卡住 UI)但它会在执行后立即进入循环。

最佳答案

尝试这样的事情,

private void Foo()
{
Task.Run(() => NormalMethod());
}

private void NormalMethod()
{
string[] files = GetFilesFromDir(@"C:\Bar\");
if (files == null || files.Length < 0) { return; }

for (int i = 0; i < files.Length; i++)
{
tbSked.Text = files[i];
LoadFile();
SQLUpdate();
RestartTimer();
}
}

关于c# - 在循环中顺序执行函数而不阻塞ui,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25305010/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com