10.4 并行运算
知识点讲解:光盘:视频\PPT讲解(知识点)\第10章\并行运算.mp4
并行运算是相对于串行运算来说的。并行运算可分为时间上的并行运算和空间上的并行运算。时间上的并行运算是指流水线技术,而空间上的并行运算则是指用多个处理器并发地执行计算。
1.For循环的并行运算
实例053 演示For循环的并行运算
源码路径 光盘\daima\10\CSharp\Parallel\ 视频路径 光盘\视频\实例\第10章\053
编写主实现文件ParallelFor.aspx.cs,其主要代码如下。
public partial class ParallelFor : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Normal();
ParallelForDemo();
}
private void Normal()
{
DateTime dt = DateTime.Now;
for (int i = 0; i < 20; i++)
{
GetData(i);
}
Response.Write((DateTime.Now - dt).TotalMilliseconds.ToString());
Response.Write("<br />");
Response.Write("<br />");
}
private void ParallelForDemo()
{
DateTime dt = DateTime.Now;
// System.Threading.Tasks.Parallel.For - for 循环的并行运算
System.Threading.Tasks.Parallel.For(0, 20, (i) => { GetData(i); });
Response.Write((DateTime.Now - dt).TotalMilliseconds.ToString());
Response.Write("<br />");
}
private int GetData(int i)
{
System.Threading.Thread.Sleep(100);
Response.Write(i.ToString());
Response.Write("<br />");
return i;
}
}
}
范例105:倒计时秒表
源码路径:光盘\演练范例\105视频路径:光盘\演练范例\105范例106:实现阴影效果的模态窗口
源码路径:光盘\演练范例\106视频路径:光盘\演练范例\106\
2.For Each循环的并行运算
实例054 演示ForEach的并行运算
源码路径 光盘\daima\10\CSharp\Parallel\ 视频路径 光盘\视频\实例\第10章\054
编写主实现文件ParallelForEach.aspx.cs,其主要代码如下。
public partial class ParallelForEach : System.Web.UI.Page
{
private List<int> _data = new List<int>();
protected void Page_Load(object sender, EventArgs e)
{
InitData();
Normal();
ParallelForEachDemo();
}
private void InitData()
{
_data.Clear();
for (int i = 0; i < 20; i++)
{
_data.Add(i);
}
}
private void Normal()
{
DateTime dt = DateTime.Now;
for (int i = 0; i < 20; i++)
{
GetData(i);
}
Response.Write((DateTime.Now - dt).TotalMilliseconds.ToString());
Response.Write("<br />");
Response.Write("<br />");
}
private void ParallelForEachDemo()
{
DateTime dt = DateTime.Now;
// System.Threading.Tasks.Parallel.ForEach - foreach 循环的并行运算
System.Threading.Tasks.Parallel.ForEach(_data, (index) => { GetData(index); });
Response.Write((DateTime.Now - dt).TotalMilliseconds.ToString());
Response.Write("<br />");
}
private int GetData(int i)
{
System.Threading.Thread.Sleep(100);
Response.Write(i.ToString());
Response.Write("<br />");
return i;
}
}
范例107:用Ajax Calendar实现日期选择
源码路径:光盘\演练范例\107视频路径:光盘\演练范例\107范例108:在商城展示页面中使用Ajax技术
源码路径:光盘\演练范例\108视频路径:光盘\演练范例\108\
共有条评论 网友评论