استاد ، من همین کد (کد اول در پست اول) را در Parallel اجرا کردم ، زمان اجراش ، دقیقا مثل همون کد اول ، 24 ثانیه طول کشید (کد اولی هم که گفته بودم 25 ثانیه ، در واقع 24 ثانیه بود . حالا چون بصورت چشمی ، خودم اندازه گیریِ حدودی میکنم ، مهم نیست . فقط کلیات برام مهم هه نه اندازه گیریِ دقیقِ زمان) :
private void NewThreadMethod_1()
{
for (long counter = 0; counter < 10000000000; counter++)
{
}
MessageBox.Show("NewThreadMethod_1 loop finished");
}
private void NewThreadMethod_2()
{
for (long counter = 0; counter < 10000000000; counter++)
{
}
MessageBox.Show("NewThreadMethod_2 loop finished");
}
private void TransparentControl5_Click(object sender, EventArgs e)
{
Action[] actions = new Action[] { new Action(this.NewThreadMethod_1), new Action(this.NewThreadMethod_2) };
Parallel.Invoke(actions);
}
این هم مثل اون ، 50 درصد از توان پردازنده ام ، یعنی 2 هسته ی فیزیکی (که همون 2 هسته ی منطقی اش هم میشه) را اشغال کرد .