小弟最近在学习多线程,有些问题很不明白,找了很多书和资料都不能得到满意答案,请各位大侠赐教:
问1:有线程A和B,想在线程B结束的时候通知线程A;
问2:有线程A和B,想在A中销毁B请各位不吝赐教,小弟先在此拜谢了

解决方案 »

  1.   

    1、如果是我就用全局变量,在destroy的时候改变这个变量的值。
    2、还是全局变量,A改变此变量通知B自行销毁。
      

  2.   

    恕我愚钝,楼上的兄弟可否说得具体一些?最好给一些代码,小弟初学。对于1,我是想让由A来控制B的销毁,而不是想让B自行销毁
      

  3.   

    1、在A线程调用B.waitfor,这个时候A线程自动挂起等B线程运行结束再继续
    2、A线程调用B.Terminate,通知B线程准备结束,
    当B线程运行到
    if B.Terminated then exit //立即退出
    这个方法最适合在循环里用,例如
    while not Terminated do begin
    ....
    ....代码部分
    end
      

  4.   

    还是1的问题.我只是想让线程B做一个辅助,并不想让A挂起而一直等待B的结束.也就是说,让A继续执行,如果B结束了就通知A一声,如果没有结束,那就让A继续运行.这个可以办到吗?可能小弟问得不大清楚吧,见谅
      

  5.   

    楼上不要误导啊,线程里面发消息用PostMessage
    消息一般是发给主线程的,线程没有接受消息的模块,自己写成本太高了
    线程通讯可以设置全局公共变量,通过改变这个变量值来确认某线程的状态