当前位置: 首页> 房产> 市场 > 网站系统正在升级维护_手机端怎么变成电脑端_网络平台推广运营公司_个人网页设计作品模板

网站系统正在升级维护_手机端怎么变成电脑端_网络平台推广运营公司_个人网页设计作品模板

时间:2025/7/9 20:48:31来源:https://blog.csdn.net/czhmx/article/details/147100029 浏览次数:0次
网站系统正在升级维护_手机端怎么变成电脑端_网络平台推广运营公司_个人网页设计作品模板

在多线程编程中,线程之间的同步和通信是一个常见的需求。例如,我们可能需要一个子线程完成某些任务后通知主线程,并由主线程执行特定的动作。本文将基于一个示例程序,详细讲解如何使用 AutoResetEvent 来实现这种场景。

示例代码:

using System;
using System.Threading;class Program
{static void Main(string[] args){Console.WriteLine("Main thread started.");using (AutoResetEvent workDoneEvent = new AutoResetEvent(false)){// 创建并启动子线程Thread workerThread = new Thread(() => DoWork(workDoneEvent));workerThread.Start();// 主线程继续做其他事情,不会被阻塞for (int i = 0; i < 5; i++){Console.WriteLine("Main thread is working...");Thread.Sleep(1000);}// 等待子线程的通知int pollInterval = 500; // 轮询间隔(毫秒)while (true){if (workDoneEvent.WaitOne(0)){ExecuteCallback();break;}Thread.Sleep(pollInterval);}}Console.WriteLine("Main thread finished.");}static void DoWork(AutoResetEvent workDoneEvent){Console.WriteLine("Worker thread started.");Thread.Sleep(100); // 模拟工作Console.WriteLine("Worker thread finished.");// 通知主线程workDoneEvent.Set();}static void ExecuteCallback(){Thread.Sleep(500); // 模拟动作执行Console.WriteLine("Callback is invoked on Main thread.");}
}

程序的功能描述

上述代码实现了一个典型的多线程场景:

  1. 主线程启动后,创建并启动一个子线程。
  2. 子线程模拟执行某些工作(通过 Thread.Sleep(100) 模拟耗时操作)。
  3. 子线程完成后,通过 AutoResetEvent 通知主线程。
  4. 主线程收到通知后,执行特定的动作(ExecuteCallback 方法)。

 

 

 

 

关键字:网站系统正在升级维护_手机端怎么变成电脑端_网络平台推广运营公司_个人网页设计作品模板

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: