为了比较并行和串行计算模式下的运行时间,我将小写字母转换为大写字母。对于并行模式,我运行2个线程并获得运行时间。 现在并行运行时间大于串行。 我的代码有什么问题?并行编程代码c#和运行时间
public void thread1()
{
for (int k = 0; k < Len; k = k + 2)
{
string sr1 =chars[k].ToString();
pchars[k] = sr1.ToUpper();
}
}
public void thread2()
{
for (int q = 1; q < Len; q = q + 2)
{
string sr2 = chars[q].ToString();
pchars[q] = sr2.ToUpper();
}
}
private void button2_Click(object sender, EventArgs e)
{
read_array();
var time2 = Stopwatch.StartNew();
Thread t1 = new Thread(new ThreadStart(thread1));
Thread t2 = new Thread(new ThreadStart(thread2));
t1.Start();
t2.Start();
time2.Stop();
lbl1.Text = (time2.Elapsed.TotalMilliseconds).ToString("ms");
Thread.Sleep(1);
}
}
简而言之:平行并不总是更快。创建和维护多个线程会产生一些开销成本(并且在小规模任务中尤其明显)。 –