C# ManualResetEvent 类的用法

C# ManualResetEvent 类的用法先说是一下ManualResetEvent是一线程用来控制别一个线程的信号。大家可以把它看成操作系统原理中说到的pv操作如下图所说是ManualResetEvent对象起一个信使的作用。ManualResetEvent对象的两个控制方法。1、this.manualEvent.Reset();//将事件状态设置为非终止状态,导致线程阻止。2、this.manualEvent

先说是一下 ManualResetEvent 是一线程用来控制别一个线程的信号。大家可以把它看成 操作系统原理中说到的pv操作

如下图所说是 ManualResetEvent 对象起一个信使的作用。
C# ManualResetEvent 类的用法

ManualResetEvent 对象的两个控制方法。
1、this.manualEvent.Reset(); //将事件状态设置为非终止状态,导致线程阻止。
2、this.manualEvent.Set(); //将事件状态设置为终止状态,允许一个或多个等待线程继续。

说了这么多光说不做还真没有用,接下来看代码!

class MyThread

        {

            Thread t = null;

            ManualResetEvent manualEvent = new ManualResetEvent(true);//为trur,一开始就可以执行

            private void Run()

            {

                while (true)

                {

                    this.manualEvent.WaitOne();

                    Console.WriteLine("这里是 {0}", Thread.CurrentThread.ManagedThreadId);

                    Thread.Sleep(5000);

                }

            }

            public void Start()

            {

                this.manualEvent.Set();

            }

            public void Stop()

            {

                this.manualEvent.Reset();

            }

            public MyThread()

            {

                t = new Thread(this.Run);

                t.Start();

            }

        }

在 main 方法中要用到上面的类

static void Main(string[] args)

        {

            MyThread myt = new MyThread();

            while (true)

            {

                Console.WriteLine("输入 stop后台线程挂起 start 开始执行!");

                string str = Console.ReadLine();

                if (str.ToLower().Trim() == "stop")

                {

                    myt.Stop();

                }

                if (str.ToLower().Trim() == "start")

                {

                    myt.Start();

                }

            }

        }

C# ManualResetEvent 类的用法

原理就说完了我们来看一下程序运行的结果!
C# ManualResetEvent 类的用法

文章转载自C# ManualResetEvent 类的用法,感谢作者 蒋乐兴 提供好文章

今天的文章C# ManualResetEvent 类的用法分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/24210.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注