Silverlight高级主题:多线程、定时器与动态加载应用详解
1. 多线程支持
Silverlight是一个多线程环境,这意味着多个代码序列可以同时执行。在网络通信的异步性质中就已经体现了这一点,主线程调用HttpWebRequest的BeginGetResponse方法后,无需等待响应,实际的网络通信在另一个线程上进行。当服务器响应时,指定的异步回调方法会被调用,且这个回调在非主线程上执行。
主线程通常被称为用户界面线程,因为所有与用户界面相关的代码都在此线程中运行。与仅使用HTML、JScript和Ajax构建的Web应用不同,Silverlight支持多线程,这使得开发者能够构建对用户响应程度更高的复杂应用。
然而,使用多线程也会带来新的问题:
-线程数量限制:每个线程都由操作系统线程支持,由于每个线程都需要内存和CPU时间,因此可使用的线程数量有限,要避免过度使用线程。
-竞态条件:当多个线程访问同一数据时,可能会出现意外行为。例如,两个线程同时修改一个共享的整数变量,可能会导致结果不符合预期。
System.Threading.Thread类是封装底层操作系统线程的托管类,其常用属性和方法如下:
| 属性 | 类型 | 描述 |
|---|---|---|
| Curr |