我现在正在开发一个系统。主要是使用Socket异步调用方式完成客户端与远程设备间的通讯。
Socket异步调用下的多线程环境中,有一个共享的资源(缓存池),多个线程需要读写这个共享资源。考虑到系统的性能,并结合异步调用的情况,应该注意哪些资源的锁定控制?
我参考了很多资料,但都写的不是很具体。
盼高手出手相助!!谢谢

解决方案 »

  1.   

    http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/episode.aspx?newsID=1242261
      

  2.   

    To downmoon(邀月) :
    我写的是Winform程序。另外我提的不是异步编程的问题,而是异步编程中的多线程环境下对共享资源访问的控制。即如果高效的保证共享资源的线程安全。
    Lock
    SynchronizationAttribute
    Monitor
    ReaderWriterLock
    等等方式。
    因为我现在开发时间比较紧,没办法把这些方式都试一遍:(
    共享资源的线程安全要求是允许同时多个阅读线程访问,但同时只能有一个线程写入(写入的同时不能有读取正在写入对象的操作)最好能给俺一段源码示例。先谢谢了!
      

  3.   

    给共享资源的访问封装起来,
    再对访问的方法进行加lock即可.
      

  4.   

    lock
    {
       临界区
    }
      

  5.   

    但是假如是遍历集合时,lock锁定临界区时,会妨碍其他线程访问共享资源吧
    我的目标是读的时候允许多线程同时进行(但不允许写),但写的时候不允许读并且只能有一个线程写入。
      

  6.   

    搂住不地道呀,bluexingqing(蓝色)就发了个专业up就给那么多分,别人那么辛苦帮你回答才每个人5分,估计bluexingqing(蓝色)是你的马甲,我要举报