为什么函数不能以程序方式运行?我希望下面的代码首先显示 TextBox ,然后空闲3秒,然后隐藏 TextBox ,但应用程序只是睡了3秒而没有显示文本框
public Main()
{
MyTextBox.Visibility = Visibility.Visible;
Thread.Sleep(3000);
MyTextBox.Visibility = Visibility.Hidden;
}
<小时/> [编辑2]
我最初想到UI线程应该如何:
Main() - &gt;初始化UI控件 - &gt;运行构造函数 - &gt;组 TextBox.Visibilily属性(可见) - &gt;渲染TextBox在GUI上可见 - &gt; Thread.Sleep(3000) - &gt;设置TextBox.Visibility属性(隐藏) - &gt; 渲染隐藏在GUI上的TextBox
但实际上,该主题看起来更像是:
Main() - &gt;初始化UI控件 - &gt;运行构造函数 - &gt;组 TextBox.Visibilily属性(可见) - &gt;设置TextBox.Visibilily属性 (隐藏) - &gt; Thread.Sleep(3000) - &gt;渲染TextBox在GUI上可见 - &gt;给予 隐藏在GUI上的TextBox
答案 0 :(得分:2)
它确实在同一个线程上同步运行,但UI线程不能同时睡眠并同时隐藏/显示TextBox
。
单个线程不能同时做两件事。