zoukankan      html  css  js  c++  java
  • 线程池管理线程及线程间通信

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;

    namespace ConsoleTest
    {
    public class ClassThread
    {
    //监听线程事件
    private ManualResetEvent myResetEvent = new ManualResetEvent(false);
    private ManualResetEvent myResetEvent2 = new ManualResetEvent(false);
    public bool set()
    {
    myResetEvent.Set();
    return true;
    }

    public bool set2()
    {
    myResetEvent2.Set();
    return true;
    }

    private void ThreadOne(object stateInfo)
    {

    for (int i = 0; i < 100; i++)
    {
    Console.WriteLine("123");
    }
    set();
    myResetEvent2.WaitOne();
    Console.WriteLine("123!!!!!!!!!");
    }
    private void ThreadTwo(object stateInfo)
    {

    myResetEvent.WaitOne();
    Console.WriteLine("456");

    Func<bool> func = new Func<bool>(MethodTwo);
    func.Invoke();

    Console.WriteLine("901");
    Console.WriteLine("901");
    Console.WriteLine("901");

    }
    private bool MethodTwo()
    {
    Console.WriteLine("0000000000000000000000000000000000000000000000");

    return set2();
    }
    public void run()
    {
    Thread _ThreadAsyncRunner = new Thread(new ThreadStart(ThreadProc_AsyncRunner));
    _ThreadAsyncRunner.Start();
    }
    private void ThreadProc_AsyncRunner()
    {
    ThreadPool.QueueUserWorkItem(new WaitCallback(this.ThreadOne));
    ThreadPool.QueueUserWorkItem(new WaitCallback(this.ThreadTwo));
    }
    }
    }

    test:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;

    namespace ConsoleTest
    {
    class Program
    {
    static void Main(string[] args)
    {
    Console.SetBufferSize(100,1200);
    ClassThread threads = new ClassThread();
    threads.run();
    Console.WriteLine("11111");
    Console.ReadKey();
    }
    }
    }

  • 相关阅读:
    insertAfter()
    Unity3D之协程(Coroutines & Yield )
    C#中 As 和强制转换的总结
    Mesh系列文章
    在Unity3D 4中关联Visual Studio 2012来编写C#
    Unity3D安装多版本
    Time.deltaTime 增量时间
    Unity3D中Update和Lateupdate的区别
    Making raycast ignore multiple layers
    Unity3d中SendMessage 用法简单笔记
  • 原文地址:https://www.cnblogs.com/lxc-binary/p/3979459.html
Copyright © 2011-2022 走看看