高效的WP7程序--图形

本文介绍了Silverlight中两种重要的线程:UI线程和CompositorThread。UI线程负责处理输入、控件创建等任务,而C线程则用于处理动画效果,包括不透明度、缩放变化、移动及旋转等,部分特殊情况会转回UI线程处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍一下Silverlight中的两种线程

1. UI Thread

      UI 线程为主要工作线程,主要负责处理以下事情:

      a.输入

      b.分析和创建控件(xaml)

      c.在第一时间画所有可见的视图

      d.回调函数和其他用户代码

      因为UI线程处理以上这些事情,所以保持这个线程free是非常必要的。维持一个轻的(lightweight)UI线程是一个好的程序的关键。后面将详细讨论如何显示UI线程陷入困境和debug使它这个现象产生。

 

2.Compositor Thread(简称C线程)

      C线程对于WP7来说是一个新的成员。实际上,C线程设计的很轻便,从而很方便的能把纹理结合到GPU去。C线程也操作一些动画类型,这样,这些动画能通过简单的GPU上的纹理操作完全的实现出来。动画(animation)是关键。为了促使C线程改变,动画必须被定义成storyboard;使用animation属性将不会使用C线程来使用。下面是支持的动画类型的列表

      a.不透明度

      b.缩放变化(在一个较小的范围 -- 一旦缩放大小为原始尺寸的50%将会在UI线程上出发一次re-rastersize。这保护了比较差的视觉效果,re-rastersize不会继续触发除非再次缩放50%)

      c.移动、旋转变化

      d.平面投影

      然而,也有一些情况是上述动画无法再C线程上执行。下面的动画list将在UI线程上执行

      a.不透明蒙板

      b.不规则图形剪裁

      c.2k*2k像素以上的纹理动画

 

 

continuing...

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值