本帖最后由 wushang923 于 2012-06-29 12:02:28 编辑

解决方案 »

  1.   

    别管啥A啊,B啊直接在你最后一步去搞。 最后一步直接用栈。栈A,栈B只要栈B不为空,就把栈A和栈B同时弹出一个,合并出来另外一个方法是使用Iquerable 构建语法树,语法树并不执行,只是构建那么解释执行则延迟到最后一步去搞
      

  2.   

    嗯,思路是很好的。
    可是没办法用B去找到对应的A的,而且这个过程一直在发生,也就是说一个B1完成后,可能已经出现A1,A2,A3.....,那么是不是还要再去分别遍历这些A呢。
      

  3.   

    如果是.Net 4.0,使用 System.Collections.Concurrent.ConcurrentQueue<T>和 System.Collections.Concurrent.BlockingCollection<T>配合,不需要线程同步对象也能完成。
    如果不是,用两个队列来储存处理好的A和B,然后用两个Semaphore对象进行同步。
      

  4.   

    有个方法:
    1:处理完A之后放入到库中,或者别的地方先保存起来。
    2:处理完是B的话,就从库中读取到对应的A来生成A+B
      

  5.   

    如果只是两个任务,那可以写个两个线程(A,B)函数(while条件,你懂的),在主程序中定义两个线程的状态A-执行,B-不执行。A执行完,A改变B的执行状态,A退出,B执行,退出。复杂点的话,B执行完后再restart A,循环往复。