WPF多线程怎么做?

2025-04-13 20:10:06
推荐回答(2个)
回答1:

WPF多线程实现:
Thread t = new Thread(()=>{
for (int i = 0; i < 100000; i++)
{
this.Dispatcher.Invoke(new Action(()=>{
txtBox.Text=i.ToString();
}));
}
});
t.Start();
WPF(Windows Presentation Foundation)是微软推出的基于Windows Vista的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。
WPF 为Windows Presentation Foundation的首字母缩写 ,中文译为“Windows呈现基础”,其原来代号为“Avalon”,因与“我佩服”拼音首字母组合一样,国内有人调侃地称之为“我佩服”。由 .NET Framework 3.0 开始引入,与 Windows Communication Foundation及 Windows Workflow Foundation并行为新一代 Windows操作系统以及 WinFX 的三个重大应用程序开发类库。
WPF是微软新一代图形系统,运行在.NET Framework 3.0及以上版本下,为用户界面、2D/3D 图形、文档和媒体提供了统一的描述和操作方法。基于DirectX 9/10技术的WPF不仅带来了前所未有的3D界面,而且其图形向量渲染引擎也大大改进了传统的2D界面,比如Vista中的半透明效果的窗体等都得益于WPF。 程序员在WPF的帮助下,要开发出媲美Mac程序的酷炫界面已不再是遥不可及的奢望。 WPF相对于Windows客户端的开发来说,向前跨出了巨大的一步,它提供了超丰富的.NET UI 框架,集成了矢量图形,丰富的流动文字支持(flow text support),3D视觉效果和强大无比的控件模型框架。

回答2:

public class Player
{
public void Load()
{
Console.WriteLine("开始下载。。。");
Thread.Sleep(10000);//假设下载要10s 钟
Console.WriteLine("结束下载。。。");
}

public void UpdataUI()
{
// 在WPF只要UI线程才可以更新UI 所以我们要用 this.Dispather( .....
}
}
static void Main(string[] args)
{
//这里是要等待时的代码。
Player p = new Player();
p.Load();
Console.WriteLine("----------- 单线程方式");//如果我执行到这一行一定要在10s以后

//多线程方式 1

Thread t = new Thread(new ThreadStart(p.Load));
t.IsBackground = true;//如果是后线程要把它设为true
t.Start();
Console.WriteLine("----------- 多线程方式");//如果我执行到这一行一定要在10s以后

//多线程方式 2

Task tsk = new Task(new Action(p.Load));
tsk.Start();

Console.ReadKey();
}