首先看看何时用多线程,引用一篇文章
http://blog.csdn.net/delacroix_xu/article/details/5928121
再来详细地重新学习一遍多线程
http://www.cnblogs.com/leslies2/archive/2012/02/07/2310495.html
http://www.cnblogs.com/leslies2/archive/2012/02/08/2320914.html
学习后注意到,其实多线程最好的方式就是异步委托+回调+传参,任何一种模式都是如此,这种方式不用轮询,不用等待。
学习完毕之后,写入自己的一些补充
1:分配多线程时,要注意尽量不要出现资源争抢的现象,比如10个线程都去写一个文件或者写数据库的同一个表,虽然我们可以用锁机制避免资源争抢,但是在这种情况下多线程的意义不大。多线程最好的应用场景是每个线程所执行的任务相对独立,就算有访问同一资源的情况,也是只读的操作。
2:对于锁机制除了上面学习提到的lock,monitor,mutex外,还有更好的选择:ReaderWriterLockSlim类,它有专门的读锁和写锁。
http://www.cnblogs.com/lucifer1982/archive/2008/12/07/1349437.html
3:对于上面文章中所提到的异步Socket,其实也有更好的方式,就是SocketAsyncEventArgs,他是基于IOCP编写的。
http://msdn.microsoft.com/zh-cn/library/system.net.sockets.socketasynceventargs.aspx
附上多线程练习的项目