读书人

[]怎么用C#的System.Threading类实现并

发布时间: 2012-09-14 23:00:49 作者: rapoo

[求助]如何用C#的System.Threading类实现并行问题呢?
各位好,小弟我现在刚接触并行程序设计的,处理一些大数据量的问题。看了一些参考资料很多都是在c/c++上实现的,但是我习惯在VS2005 C#编程,就查到相关System.Threading的东西,但还是不会怎样具体调用。

例如,我有一个问题(当然没这么简单,我只是想具体理解一下它的用法):
想用两个线程来计算1+2+3+。。。+100,线程A计算奇数项,线程B计算偶数项,然后将两个结果相加,输出。

请问应该怎样写呢?谢谢各位帮忙了。

[解决办法]
还是给你写个demo吧:

C# code
using System;using System.Threading;namespace ConsoleApplication1{    class Program    {        static void Main(string[] args)        {            var sum = 0;            var eh = new ManualResetEvent(false);            ThreadPool.QueueUserWorkItem(h =>            {                for (var i = 2; i <= 100; i += 2)                    sum += i;                eh.Set();            });            var sum2 = 0;            for (var i = 1; i <= 100; i += 2)                sum2 += i;            eh.WaitOne();            Console.WriteLine("计算结果分别为{0}、{1},总计为{2}。", sum2, sum, sum2 + sum);            Console.ReadKey();        }    }}
[解决办法]
http://www.cnblogs.com/xugang/archive/2008/04/06/1138856.html
[解决办法]
如果有可能升级下.net版本吧
可以看看下面的文章或者blog:
Parallel Programming in the .NET Framework
http://msdn.microsoft.com/en-us/library/dd460693(v=vs.100).aspx

Parallel Computing
http://msdn.microsoft.com/en-us/vstudio/bb964701.aspx


Parallel Programming with .NET
http://blogs.msdn.com/b/pfxteam/

读书人网 >C#

热点推荐