C# WPF 应用程序中的主线程和 UI 线程是否相同?

Mon*_*RPG 5 .net c# wpf

您可以从另一个线程而不是主线程启动 UI 吗?主线程中的繁重处理不会阻塞 UI 可能吗?

C# 4.5 WPF 应用程序

Tyl*_*ler 4

是的,它们是同一个线程。您可能希望生成一个新线程来处理主要处理。

下面的示例仅包含一个按钮,该按钮将使主线程休眠(10 秒),一旦调用 Button_Click 并且“休眠”开始,整个 UI 就会变得无响应。

希望有帮助。

.xaml

<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <Button Content="Button" HorizontalAlignment="Left" Margin="231,142,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>

</Grid>
Run Code Online (Sandbox Code Playgroud)

。CS

    using System.Threading;
using System.Windows;

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Thread.Sleep(10000);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑包括语法更正和示例/示例代码的解释。