CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  VB.NET

线程问题:我如何知道线程已经结束了?

楼主farrio(独孤求胜)2005-03-28 17:46:55 在 .NET技术 / VB.NET 提问

WindowsApplication里面,新New一个线程,然后Start。等待线程结束后有一些操作要在主线程里面执行。我怎么知道我新New的线程结束了呢?  
  Private   Sub   btnGo_Click(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   btnGo.Click  
      t   =   New   Threading.Thread(AddressOf   WinTree)  
      t.Start()  
      Me.txtTree.Text   =   val  
  End   Sub  
   
  Private   Sub   WinTree()  
      WinTree(dir,   "",   val)  
  End   Sub 问题点数:80、回复次数:5Top

1 楼3tzjq(永不言弃)回复于 2005-03-28 18:03:10 得分 16

If   th.ThreadState   =   Threading.ThreadState.Stopped   Then   Debug.WriteLine("线程已经停止!")Top

2 楼gyf19(秋天的云)回复于 2005-03-28 18:07:42 得分 16

你访问t.ThreadState属性它能返回t线程的状态!!  
   
  获取一个值,该值包含当前线程的状态。  
  Top

3 楼athossmth(athos)回复于 2005-03-28 18:15:57 得分 16

using   System;  
  using   System.Threading;  
   
   
  class   App   {  
        public   static   void   Main()   {  
              Console.WriteLine("Main   thread:   Queuing   an   asynchronous   operation.");  
              AutoResetEvent   asyncOpIsDone   =   new   AutoResetEvent(false);  
              ThreadPool.QueueUserWorkItem(new   WaitCallback(MyAsyncOperation),   asyncOpIsDone);  
   
              Console.WriteLine("Main   thread:   Performing   other   operations.");  
              //   ...  
   
              Console.WriteLine("Main   thread:   Waiting   for   asynchronous   operation   to   complete.");  
              asyncOpIsDone.WaitOne();  
        }  
   
   
        //   The   callback   method's   signature   MUST   match   that   of   a   System.Threading.WaitCallback    
        //   delegate   (it   takes   an   Object   parameter   and   returns   void)  
        static   void   MyAsyncOperation(Object   state)   {  
              Console.WriteLine("WorkItem   thread:   Performing   asynchronous   operation.");  
              //   ...  
              Thread.Sleep(5000); //   Sleep   for   5   seconds   to   simulate   doing   work  
   
              //   Signal   that   the   async   operation   is   now   complete.  
              ((AutoResetEvent)state).Set();  
        }  
  }Top

4 楼delphi_dcs(delphi人生)回复于 2005-03-28 18:23:36 得分 16

問題解決沒有Top

5 楼Drong([伤口])回复于 2005-03-28 18:53:08 得分 16

建立事件委托   建立一个结束进程的事件   事件引发后自动记数Top

相关问题

  • 如何知道一个线程已经结束?
  • 如何结束线程?
  • 线程如何结束
  • 线程如何结束?
  • 如何结束一个线程?
  • 如何结束一个线程
  • 如何结束一个线程?
  • 在MFC中如何结束UI线程?
  • 如何结束当前的线程
  • 如何强制结束一个线程?

关键词

  • 线程
  • asyncopisdone
  • wintree
  • threadstate
  • autoresetevent
  • 结束
  • thread
  • asynchronous
  • writeline
  • 事件

得分解答快速导航

  • 帖主:farrio
  • 3tzjq
  • gyf19
  • athossmth
  • delphi_dcs
  • Drong

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo