线程A起了一个线程B,线程B会起多个线程C1,C2,C3,等等A --> B --> |-->C1 
            |-->C2
            |-->C3
线程C1,C2,C3做的事情都是new一个form
然后把form ShowDialog出来有的时候我需要在线程A或B中强制结束线程C,我现在用
c.Abort();
c.Join();
发现有问题
一执行,界面线程就堵塞了(这应该是join导致的,怎么解决这个问题),过一伙才好,然后线程C这个对话框确实不见了,(线程c对话框同时在播放wav),但是wav还在响(怎么可以保证强制结束线程的时候,释放所有资源,我用了try,finally好像也不行)还有我在线程A中
B.Abort();
B.Join();
对B不产生作用

解决方案 »

  1.   

    使用Mutex等信号量代替Join,这样就可以了也可以使用AppDomin,直接卸载程序域,不过是进程不是线程了...
      

  2.   

    有的时候我需要在线程A或B中强制结束线程C,我现在用
    c.Abort();
    c.Join();
    一执行,过一伙(如何可以立即结束?)线程C这个对话框确实不见了,(线程c对话框同时在播放wav),但是wav还在响(怎么可以保证强制结束线程的时候,释放所有资源,我用了try,finally好像也不行)
      

  3.   

    c.Abort();即可,不用再寫c.Join();
    你再試試.
      

  4.   

    c.Abort();即可,不用再寫c.Join();
    ----------------------------
    c.Abort()
    不可以立即结束
    而且也不会释放所有资源