- 浏览: 225371 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
synack:
写的很好,图文并茂,语言简单清晰,赞!
SkipList 跳表 -
king_c:
jiandandecaicai 写道你好,请教一下是如何通过E ...
从Hadoop URL 中读取数据 -
jiandandecaicai:
你好,请教一下是如何通过Eclipse来连接Hadop机群的, ...
从Hadoop URL 中读取数据
最近接触C#的一个项目,里面用到了多线程处理,这里做个备忘
class TestThread { static void Main() { //使用WaitHandle静态方法阻止一个线程,直到一个或多个同步对象接收到信号 WaitHandle[] waitHandles = new WaitHandle[] { new ManualResetEvent(false), new ManualResetEvent(false) }; WaitCallback waitCallback = new WaitCallback(MyThreadWork); WaitCallback waitCallback2 = new WaitCallback(MyThreadWork2); // 增加线程工作类型 ThreadPool.QueueUserWorkItem(waitCallback, "第一个线程"); ThreadPool.QueueUserWorkItem(waitCallback, "第二个线程"); MyState myState = new MyState("第三个线程", 100, waitHandles[0]); // 增加自定义的线程参数类型 ThreadPool.QueueUserWorkItem(waitCallback2, myState); ThreadPool.QueueUserWorkItem(waitCallback2, new MyState("第四个线程", 2, waitHandles[1])); WaitHandle.WaitAll(waitHandles); Console.WriteLine("MyState 的 Number 值为: {0}", myState.Number); // 读取线程改变后的 MyState } public static void MyThreadWork(object state) { Console.WriteLine("MyThreadWork 开始启动 …… {0}", (string)state); Thread.Sleep(1000); Console.WriteLine("运行结束…… {0}", (string)state); } // use MyState class public static void MyThreadWork2(object state) { MyState myState = ((MyState)state); Console.WriteLine("MyThreadWork2 开始启动…… {0},{1}", ((MyState)state).Info, ((MyState)state).Number); Thread.Sleep(1000); ((MyState)state).Number += 1; // 将 state的 Number 加 1 Console.WriteLine("运行结束…… {0},{1}", ((MyState)state).Info, ((MyState)state).Number); ((ManualResetEvent)myState.DoneEvent).Set(); } } public class MyState { private string info; private int number; private WaitHandle _doneEvent; public MyState(string info, int number, WaitHandle doneEvent) { this.info = info; this.number = number; this._doneEvent = doneEvent; } public string Info { get { return this.info; } set { this.info = value; } } public WaitHandle DoneEvent { get { return this._doneEvent; } } public int Number { get { return this.number; } set { this.number = value; } } }
发表评论
-
openface 人脸识别开放平台
2014-08-10 17:27 1783using System; using System.Co ... -
新中新二代身份证dll调用,报尝试读取或写入受保护的内存,这通常指示其他内存已损坏 这个错
2014-06-26 04:04 916新中新二代身份证dll调用问题: ... -
【OpenCV学习笔记】2.3 OpenCV2.2摄像头读取视频的问题和解决(VS2010)
2014-06-18 16:38 3948摄像头读取视频这一块研究了很长时间,终于弄好了。刚开始 ... -
C# 4.0 并行计算部分 [转发]
2014-05-03 15:24 1065沿用微软的写法,System.Threading.Task ... -
vector 转换成 数组 - [C++]
2013-12-13 18:06 4737参考: http://topic.csdn.n ... -
convert file into byte array
2012-05-12 23:16 928private byte [] StreamFile(s ... -
使用.NET中的XML注释-- 创建帮助文档入门篇
2012-04-07 11:24 1520一.摘要 在本系列 ... -
C#访问和操作MYSQL数据库
2012-03-23 09:59 1614这里介绍下比较简单的方式,引用MySql.Data.dll ... -
C#访问和操作MYSQL数据库
2012-03-23 09:58 1这里介绍下比较简单的方式,引用MySql.Data.dll ... -
http://www.microsoft.com/china/MSDN/library/langtool/VCSharp/USgetstart_vcsharp.
2012-03-22 21:26 1208http://www.microsoft.com/china/ ... -
使用Signature Tool自动生成P/Invoke调用Windows API的C#函数声明
2012-03-17 22:47 1289在网上看到很多网友在.NET程序中调用Win32 API, ... -
MarshalAs
2012-03-17 22:04 1363MarshalAs是提供向非托管代码封送数据时的规则。比如S ... -
Timeout expired. The timeout period elapsed prior ..
2012-02-26 19:13 1697关于这个问题,要 ... -
c#winform编程中获取cpu个数的方法 详细出处参考:http://www.ityoudao.com/Web/Csharp_590_1542.html
2012-02-23 18:44 978前些时间,为了配置合更加快速有效地制作Sphinx分词搜 ... -
C# socket 服务端实例
2011-12-08 19:50 1063IPAddress ipAddress; ... -
C# 文件操作
2011-12-08 19:40 763文件读取: Console.W ... -
c#的ThreadPool使用笔记(一)
2011-09-03 15:27 1909摘要:系列文章,从 ... -
C# 调用C++ DLL编码问题
2011-08-29 14:25 1539今天用C#调用C++写的一个DLL 死活不成功 ... -
关于global.asax 总结经验
2011-08-25 14:13 14261. 关于global.asax 总结 ... -
WebService获取服务端硬件信息和客户端IP,MAC,浏览器信息
2011-07-28 18:58 1460using System;using System.Co ...
相关推荐
在C#编程中,多线程是一个核心概念,它允许程序同时执行多个任务,从而提高应用程序的效率和响应性。"大漠的c#多线程模板"提供了一个实际的例子,帮助开发者理解和应用多线程技术。下面我们将深入探讨这个主题。 ...
在C#编程中,多线程是一种允许程序同时执行多个任务的技术,它极大地提高了应用程序的性能和响应速度。本文将深入探讨C#中的多线程概念、线程池的使用以及如何通过实例理解其工作原理。 首先,多线程在C#中是通过`...
在C#编程中,多线程是一个至关重要的概念,它允许程序同时执行多个任务,从而提高了应用程序的效率和响应性。本教程将深入探讨C#中的多线程使用,包括其核心概念、创建方法以及常见操作。 一、线程基础 1. **线程...
在C#编程中,多线程是一项核心技能,特别是在现代计算环境中,多任务处理和并发执行已经成为提升系统性能的关键。本资源"**c#多线程编程范例**"提供了全面的C#多线程开发示例,旨在帮助开发者深入理解和掌握多线程的...
【C#多线程线程池和异步编程】深入探讨 在.NET框架中,多线程编程是实现并发执行任务的重要手段。本篇将详细讲解`System.Threading.ThreadPool`类、`System.Threading.Timer`类以及异步编程的使用。 **1. System....
### C#多线程详解 #### 一、基础篇 **1. 怎样创建一个线程** 在C#中创建线程的方式有很多种,这里主要介绍三种常用的创建方式:使用`Thread`类、使用`Delegate.BeginInvoke`以及使用`ThreadPool....
在C#编程中,线程是并发执行任务的基础单元,它允许程序同时处理多个操作,提高了应用程序的效率和响应性。本资源包含了23个不同的线程实例,旨在帮助开发者深入理解和熟练掌握C#中的线程操作。这些实例都是可独立...
在C#编程中,多线程是一个核心概念,它允许程序同时执行多个任务,从而提高应用程序的效率和响应性。本示例“MultithreadingConsoleDemo”旨在帮助开发者理解并应用C#中的多线程技术。 一、多线程基础 多线程是指...
多线程是C#编程中一个重要的概念,它允许程序同时执行多个任务,从而提高了应用程序的效率和响应性。这篇内容将深入探讨C#中的多线程及其在实际项目中的应用。 一、多线程基础 1. 线程的创建:在C#中,可以使用`...
本文将深入探讨多线程采集的C#实现及其相关知识点。 首先,我们要理解什么是多线程。在单线程程序中,所有任务按顺序执行,而多线程允许程序同时执行多个任务,从而提高了资源利用率和程序响应速度。在C#中,我们...
在C#编程中,线程是并发执行任务的基本单元,它允许程序同时处理多个操作,极大地提升了程序的执行效率和用户体验。"C#线程实例(好用的)"这个资源显然是为了提供一种实用的线程应用示例,帮助开发者更好地理解和运用...
### 多线程教程知识点详解 #### 基础篇 **怎样创建一个线程** ...以上就是关于.NET多线程的相关知识点,涵盖了基础知识、WinForm中的多线程编程、线程池的使用以及同步机制等方面的内容。希望这些信息对你有所帮助。
在编程领域,多线程是实现并发执行任务的关键技术,特别是在C#中,它使得程序能够同时处理多个任务,提高程序的效率和响应性。本文将深入探讨C#中的多线程,涵盖其核心概念、使用方法以及注意事项。 1. **多线程的...
.NET多线程详解 在.NET框架中,多线程编程是一项关键技能,它允许开发者同时执行多个任务,提高应用程序的效率和响应性。...同时,了解如何在WinForm和Web环境中正确处理多线程问题,对于避免潜在错误至关重要。
本资源提供的".net版本简单线程调用源码--值得下载"可能包含了关于如何在C#中进行线程操作的实例代码,这对于理解和实践多线程编程非常有帮助。 首先,我们来看C#中创建线程的基本方式。`System.Threading.Thread`...
ThreadPool.QueueUserWorkItem(new WaitCallback(MyThreadPoolMethod), data); ``` `MyThreadPoolMethod`是你要在线程池中运行的方法,`data`是传递给该方法的参数。 线程优先级是另一个重要的概念,.NET的Thread...
ThreadPool.QueueUserWorkItem(new WaitCallback(YourMethod)); ``` 四、线程优先级 每个线程都有一个优先级,表示其被调度的优先程度。可以通过`Thread.Priority`属性设置,包括:Lowest、BelowNormal、Normal、...
ThreadPool.QueueUserWorkItem(new WaitCallback(YourMethod), parameter); ``` 其中,`YourMethod`是你想要在线程池中执行的方法,`parameter`是传递给该方法的参数。 2. **运行线程池任务**: - 线程池会自动...
ThreadPool.QueueUserWorkItem(new WaitCallback(d.DownloadRange), new object[] { sourceUri, targetFileName, d.StartPosition, d.EndPosition }); } // 等待所有线程完成 WaitHandle.WaitAll(events); ``` ##...
三是利用线程池的`ThreadPool.QueueUserWorkItem`,传入一个`WaitCallback`委托和参数来启动线程。 2. **受托管的线程与Windows线程**:在.NET中,受托管的线程是由.NET Framework管理的,它们与操作系统中的...