首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MultiThreading异步

MultiThreading异步
EN

Stack Overflow用户
提问于 2015-07-25 07:56:27
回答 1查看 37关注 0票数 1

为什么这段代码没有到达Console.WriteLine(“其他线程已经完成!”);?这段代码来自专业C# 5.0和.NET 4.5框架书,第717-718页。

代码语言:javascript
复制
        private static AutoResetEvent waitHandle = new AutoResetEvent(false);

    static void Main(string[] args)
    {
        Console.WriteLine("ID of thread in Main(): {0}", Thread.CurrentThread.ManagedThreadId);
        AddParms data = new AddParms(3, 4);
        Thread t = new Thread(new ParameterizedThreadStart(Add));
        t.Start(data);

        waitHandle.WaitOne();
        Console.WriteLine("Other thread is done!");
        Console.ReadLine();
    }

    private static void Add(object data)
    {
        Console.WriteLine("ID of thread in Add(): {0}", Thread.CurrentThread.ManagedThreadId);

        AddParms ap = (AddParms)data;
        Console.WriteLine("{0} + {1} = {2}", ap.A, ap.B, ap.A + ap.B);
    }
EN

回答 1

Stack Overflow用户

发布于 2015-07-25 08:32:22

代码语言:javascript
复制
waitHandle.WaitOne();

此行导致执行停止,直到设置了等待句柄。提供的代码从不设置等待句柄,因此代码会无限期地阻塞。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31621432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档