06 2012 档案

摘要:我们在编程的时候,有时会使用多线程来解决问题,比如你的程序需要在后台处理一 大堆数据,但还要使用户界面处于可操作状态;或者你的程序需要访问一些外部资源如数据库或网络文件等。这些情况你都可以创建一个子线程去处理,然而,多线 程不可避免地会带来一个问题,就是线程同步的问题。如果这个问题处理不好,我们就会得到一些非预期的结果。 在网上也看过一些关于线程同步的文章,其实线程同步有好几种方法,下面我就简单的做一下归纳。 一、volatile关键字 volatile是最简单的一种同步方法,当然简单是要付出代价的。它只能在变量一级做同步,volatile的含义就是告诉处理器, 不要将我放入工作... 阅读全文
posted @ 2012-06-29 12:44 base 阅读(193) 评论(0) 推荐(0)
摘要:命名空间:System.Diagnostics Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间。在典型的 Stopwatch 方案中,先调用 Start 方法,然后调用 Stop 方法,最后使用 Elapsed 属性检查运行时间。 Stopwatch 实例或者在运行,或者已停止;使用 IsRunning 可以确定 Stopwatch 的当前状态。使用 Start 可以开始测量运行时间;使用 Stop 可以停止测量运行时间。通过属性 Elapsed、ElapsedMilliseconds 或 ElapsedTicks 查询运行时间值... 阅读全文
posted @ 2012-06-13 16:33 base 阅读(176) 评论(0) 推荐(0)
摘要:转贴:如果想要利用C#通过Socket进行网络传输文件,一般情况下,大家会首先考虑使用.NET自带的 Socket.SendFile Method (String)这个方法。不过这个方法没有相应的文件接受方法,而且据说会有8KB的限制。所以,我尝试了另外一种方法,发现效果不错。下面,我就来简 单介绍一下其原理。 Socket.Send()和Socket.Receive()方法都是传递byte[]的,所以就要想办法把文件给变成 byte[]。一开始试过用StreamReader来读取string,然后用Encoding来进行编码得到byte[],接收以后再还原成 string写入文件。结果发.. 阅读全文
posted @ 2012-06-13 10:57 base 阅读(4791) 评论(0) 推荐(2)