求一段关于并发的c#代码
举例子原来的程序:
public class eat
{
public void getfood()
{
getcake(); //20秒
getwater(); //20秒
getbread(); //20秒
getrace(); //20秒
}
}
getfood方法中的四个方法互不干涉,怎样用多线程技术 让它们并行执行?那样就不用20+20+20+20=80秒,而是同时的 20秒!
注意getfood类中四个字方法,均引用了另一个工具类 中的static方法,catch(),注意线程安全。
希望大家能给个例子,别给我伪代码啊,哈哈。 --------------------编程问答-------------------- 这个属于并行么
百度下 --------------------编程问答-------------------- --------------------编程问答-------------------- using System.Threading.Tasks;
List<Action> list = new List<Action>()
{
() => getcake(), () => getwater(), () => getbread(), () => getrace()
};
Parallel.For(0, 3, x => list[x]());
是不是能在20秒内运行完毕,要看线程占用 CPU 和同步资源的情况。
对于单CPU并且满负荷的程序,不可能提高4倍速度,相反还要80秒。不然没有必要搞多核CPU了,都多写些线程就可以了。
补充:.NET技术 , ASP.NET