从一个父线程中创建n个子线程,如何在这n个子线程都执行完成后通知父线程所有子线程已终结?
RT
比如(以下为伪代码):
-------------
dim father as new thread(addressof f)
father.start()
'do something else
-------------
public sub f()
for i as int32=0 to 100
dim chld as new thread(addressof child)
next
'do something else
end sub
-------------
public sub child()
'do something here, import codes here
end sub
-------------
如上所述,如何在这100个 chld 线程全部执行完成后通知父线程 father 并执行一定的操作?
另,由于父线程在创建子线程后有其自己的工作要做,所以不能用 Join 方法阻塞父线程。其实父线程在我的程序中是窗口UI线程,不能被阻塞,否则窗口就会无法刷新,像死机一样。我的目的就是要在所有子线程执行完成后通知窗口线程更改窗口状态。请不要告诉我使用control.Invoke方法,这个方法我知道,我想用标准线程来达到目的,请大虾指点。