WPF多线程怎么做?
我是一个新手,正在学习WPF。最近在尝试用WPF做视频播放器。加了一个下载的功能。但是下载时程序只能等待下载结束才会继续运行。求大神解决一下,怎么并行操作。另注:由于是新...
我是一个新手,正在学习WPF。最近在尝试用WPF做视频播放器。加了一个下载的功能。
但是下载时程序只能等待下载结束才会继续运行。
求大神解决一下,怎么并行操作。
另注:由于是新手,所以如有可能请各位大神举一下例子。
多谢。 展开
但是下载时程序只能等待下载结束才会继续运行。
求大神解决一下,怎么并行操作。
另注:由于是新手,所以如有可能请各位大神举一下例子。
多谢。 展开
2015-11-18 · 知道合伙人教育行家
关注
展开全部
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视觉效果和强大无比的控件模型框架。
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视觉效果和强大无比的控件模型框架。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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();
}
{
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();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询