读书人

C# 等待线程结束后执行下面的程序,该如

发布时间: 2012-05-22 18:18:54 作者: rapoo

C# 等待线程结束后执行下面的程序

C# code
bool goon = true;   //是否继续执行随后的程序public void Main(){ Thread staThread = new Thread(new ThreadStart(GetData()));    //GetData() 是一个                staThread.SetApartmentState(ApartmentState.STA);                staThread.Start();                //下面代码的意图:希望等这个GetData() 执行结束后再执行Excute()方法                while (staThread.ThreadState == ThreadState.Running)                {                    goon = false;    //按我的想法,GetData()未执行完前 应该是在这儿一直循环                }                 goon = true;                if(goon )Excute();     /}//这是一个调用SAP接口取数的方法public void GetData(){    //code...     }public void Excute(){    //code...}


[解决办法]
C# code
class Program    {        static Object obj = new Object();        static void Main(string[] args)        {            Thread staThread = new Thread(new ThreadStart(GetData));            staThread.SetApartmentState(ApartmentState.STA);            staThread.Start();            Excute();            Console.Read();        }        static void GetData()        {            Monitor.Enter(obj);            Console.WriteLine("Get Data...");            Thread.Sleep(5000);            Console.WriteLine("Geted Data");            Monitor.Pulse(obj);            Monitor.Exit(obj);        }        static void Excute()        {            Monitor.Enter(obj);            Monitor.Wait(obj);            Console.WriteLine("Excuting...");            Thread.Sleep(1000);            Console.WriteLine("Excuted");            Monitor.Exit(obj);        }    } 

读书人网 >C#

热点推荐