BackgroundWorker wpf c#

问题描述 投票:0回答:1
            BackgroundWorker worker = new BackgroundWorker();
            worker.DoWork += (m, s) =>
            {
                Application.Current.Dispatcher.Invoke(() => Bilgi());  //1-
                Application.Current.Dispatcher.Invoke(() => Amortisman();  //2-
            };
            worker.RunWorkerAsync();

比尔吉(); = 是动画,

Amortisman() = 是一个计算,它检查文本框并在文本框中打印计算值。

我想做的是 Amortisman() 我应该把它放在某个地方,以便在显示 Bilgi() 动画时,Amortisman() 也会被执行,进行计算并将其打印到文本框。动画效果很好。 我浏览了数百页,但没有找到适合自己的BackgroundWorker。 我找不到它,每个人都使用进度条,我想做的是运行动画。 请帮忙

我对我的英语感到抱歉

wpf
1个回答
0
投票

如果您想在后台同时运行动画 (Bilgi()) 和计算 (Amortisman()),同时确保计算在进行时更新 UI,您可以使用 Task 和 async/await 的组合的BackgroundWorker。具体方法如下:

Task.Run(async () =>
{
    await Task.Delay(1000); // Simulate some initial delay
    await Application.Current.Dispatcher.InvokeAsync(() => Bilgi()); // Run the animation on the UI thread

    // Run the calculation in the background
    await Task.Run(() =>
    {
        Application.Current.Dispatcher.Invoke(() => Amortisman());
    });
});
© www.soinside.com 2019 - 2024. All rights reserved.