比较急。
程序描述:各线程对文件进行处理[解析提取等]
          把处理后的结果(解析出来的很多记录)保存到ACCESS数据库中。要求速度快:多线程应该可以提高速度,问题:怎么把提取出来的多条记录存进同一个数据库??
我的思路:分线程处理完之后,把多条数据交给主线程由主线程负责数据库的存储
线程之间的配合和阻塞问题。??有做过这方面的 说一下,今晚急用。路过的朋友帮忙顶一下,谢了都有分。
提供代码和完整思路的送分至少200!(另开贴)

解决方案 »

  1.   

    主要是数据共享问题,随便选一种就可以了。
    子线程里将数据准备好后,SendMessage向主线程发一个WM_USER消息
    主进程收到后,取出来,写入ACCESS数据库。
    要注意冲突。
      

  2.   

    to FigoZhu(谢慕安)
    你的意思是 子线程解析出一条记录 就象主进程发消息。
    如果我同时开多个子线程,SendMessage 消息传递 是马上处理还是送到消息队列我忘记了。
    如果是马上处理,子线程等待他的返回,那住现成可能就是瓶颈。
      

  3.   

    1. 多線程不是萬能,如果你每個線程所處理的事情都是比較復雜的 可能多線程不一定好
    2. 你的文件是同一個文件 還是多個不同的文件呢。
    t1
    t2
    t3      ---->>將數據發往你的功能保存層(保存到數據庫),注意同步 --> ? tn..
    ...
    tn你可以采取之間的通信 可以異步 也可以同步處理,看你具體的保存塊的設計 比如你可以為每一個線程建立一個緩沖,線程傳過來的數據直接往裡面寫就是(當然 有上限),或者 你的線程每傳一條數據過來,就等待保存完後再返回之類的這裡明顯有效率上的區別 自然難度也步一樣  思路這樣是可以的。
      

  4.   

    别用Access,Access的速度惊人的慢。
      

  5.   

    >>我的思路:分线程处理完之后,把多条数据交给主线程由主线程负责数据库的存储
    线程之间的配合和阻塞问题。??這個思路, 我贊同!>>各线程对文件进行处理[解析提取等]
    如果是密集數據計算, 用多線程不見得有效
    多線程只是會提高界面反應速度, 不受後台計算的影響
      

  6.   

    TO firstshine(黑里透红) 
    我现在做的是个测试,公司要的。就用ACCESS存储。其实ACCESS 用起来不慢,用DAO 非常快。快的让你想不到:)