小编Ric*_*eft的帖子

为什么我需要UI线程检查

要从其他线程更新UI,您需要调用调度程序的BeginInvoke方法.在调用方法之前,您可以检查调用线程是否与调度程序关联.

对于我的例子,我有2种方法来更新文本框; 通过单击按钮并通过计时器.代码:

using System;
using System.Timers;
using System.Windows;
using System.Windows.Controls;

namespace WpfApplication1
{
    public partial class MainWindow : Window
    {
        private int i = 0;
        private TextBlock myText = new TextBlock();
        private Button myButton = new Button();
        private Timer timer = new Timer(2 * 1000);
        private StackPanel panel = new StackPanel();

        public MainWindow()
        {
            InitializeComponent();

            myButton.Content = "Click";

            panel.Children.Add(myText);
            panel.Children.Add(myButton);

            this.AddChild(panel);

            myButton.Click += (_, __) => IncrementAndShowCounter();
            timer.Elapsed += (_, __) => IncrementAndShowCounter();

            timer.Start();
        }

        private void IncrementAndShowCounter()
        { …
Run Code Online (Sandbox Code Playgroud)

c# wpf user-interface multithreading

0
推荐指数
1
解决办法
241
查看次数

标签 统计

c# ×1

multithreading ×1

user-interface ×1

wpf ×1