Windows phone 7 开发注意事项

本文探讨了在异步编程中确保线程安全、防止脏数据问题的关键实践,包括循环访问DB、解析XML文件、SOCK重用、消息处理等场景。详细介绍了如何在.NET框架下使用线程、事件、数据绑定等技术,实现高性能并发处理。

1. 所有的线程,特别是可能会长时间运行的code,如 while,foreach 循环,一定要加对特定标志位的检查,如是否已经lougout,如果是,那么理论上所有的线程都要停止,否则,重新login,就会出现线程共享问题,和脏数据问题,而且检查起来也特别麻烦。 这个就是异步调用比同步调用所麻烦的地方,呵呵! 特别注意: 循环访问DB的地方,因为这个会比较耗时间,还有就是解读server传来的xml文件时。

2. Sock不可重用,用完后要释放掉。

3. 在新的sock建立之前,要将所有和之前的sock相关的所有线程停掉,所有和接收,发送消息的变量清空。

4.使用单独的线程来处理发送和接收的相关逻辑。如ThreadReceive,用来接收消息,并转为command,逐个执行

ThreadSend,用来发送所有的commands. DirectorySend用来存储所有已发送的command(ID => key),用来为接收的Thread处理接收消息时,匹配对应的command.

5. 使用Event,带server 的消息回来后,处理相关的逻辑。

6. 数据绑定和event的订阅和释放要放在onNavigationTo和

onNavigationFrom方法中。

7. 对耗时的操作要放在this.Dispather中异步执行。

8.数据刷新参照之前的数据绑定和刷新的文件。

9.对自定义的CustomerControl,尽量采用数据绑定的方法来自动刷新UI,而不要采用暴露属性和刷新UI的方法。对特定的control,甚至可以将datasource都不暴露,用到的地方要做的只是堆放control,不需要处理任何逻辑。

转载于:https://www.cnblogs.com/Jessy/archive/2011/12/22/2298017.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值