这个问题可以通过使用异步方式执行 UI 线程操作来解决。具体做法是在异步操作中使用 'Dispatcher.InvokeAsync' 方法来执行 UI 线程操作,而不是直接执行 UI 线程操作。这样可以保证 UI 线程操作能够在异步操作中逐个执行,而不是等到循环结束后才执行。

示例代码如下:

async Task MyMethod()
{
    foreach (var item in items)
    {
        await Task.Run(() =>
        {
            // 异步操作
            // ...
            // UI线程操作
            Dispatcher.InvokeAsync(() =>
            {
                // 执行UI线程操作
            });
        });
    }
}
C# WPF 异步循环中同步更新UI的最佳实践

原文地址: https://www.cveoy.top/t/topic/m9bP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录