[WPF] Use the `Dispatcher.Invoke` method to switch the operation back to the UI thread and update the object's variables on the UI thread

Here is an example:

// 在后台线程执行耗时操作
Task.Run(() =>
{
    
    
    // 耗时操作

    // 更新UI线程上的变量
    Application.Current.Dispatcher.Invoke(() =>
    {
    
    
        // 在UI线程上给调用对象的变量赋值
        YourObject.YourVariable = newValue;
    });
});

In the above example, the Task.Run method is used to perform time-consuming operations on a background thread. After the time-consuming operation is completed, we use the Application.Current.Dispatcher.Invoke method to switch the operation back to the UI thread.

In the delegate ofDispatcher.Invoke, we can access the object on the UI thread and assign values ​​to its variables. For example, we can use YourObject.YourVariable = newValue to assign a value to the variable of the calling object.

Make sure that before calling Dispatcher.Invoke, you have created an instance of YourObject and that the object is accessible on the UI thread.

Remember to be careful to avoid deadlock or thread contention situations when usingDispatcher.Invoke. Make sure your code logic and inter-thread synchronization are correct to avoid potential problems.

Hope this answers your question!

Guess you like

Origin blog.csdn.net/gao511147456/article/details/134847662