نقل قول نوشته شده توسط SajjadKhati مشاهده تاپیک
استاد ، من همین کد (کد اول در پست اول) را در 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 هسته ی منطقی اش هم میشه) را اشغال کرد .
سلامی مجدد
خیلی ممنون استاد .
پست تون را خوندم والان روی اون کدی که دادین میخوام تمرکز و بررسی کنم .

اما شما هم این کدی که من در پست 4 دادم (همینی که نقل قول کردم) را بررسی میکنید؟
پس چرا این کد را که با parallel نوشتم ، هم از لحاظ زمان اجرا و هم از لحاظ آمار درگیر کردنِ توانِ پردازنده (که در task manager میده) ، با کد اول در پست اول (که با thread کار کرده بودم) ، دقیقا یکی هست؟

شما میگید که وقتی آمار میده که 50 درصد از توان پردازنده را داره صرف پروسه ی من میکنه ، با این حال ، فقط یک هسته همزمان داره پروسه و نخ های پروسه ی من را پردازش میکنه (اما در حال سوئیچ مداوم هست) ؟
پس یعنی دارید میگید یک هسته داره درگیرش میشه دیگه؟
اگه یک هسته داره درگیرش میشه ، پس چرا task manager ، آمار میده که دو هسته ام داره اشغال میشه؟ متوجه ی منظورم شدید؟ منظورم اینه که یک هسته (حتی با وجود سوئیچ کردن) ، باز 25 درصد توان پردازنده ام هست . پس چرا میگه 50 درصد؟
و مهمتر از اون ، چرا سرعت انجام کارها 2 برابر شده؟ خوب ، وقتی در یک هسته انجام بشه ، نباید سرعت انجام کدها در یک نخ و دو نخ فرقی داشته باشن . پس در این صورت باید کد اولم در پست اول با کد دوم ام در پست اول ، زمان اجراشون یکی باشن . اما کد اولی ، 2 برابر سریعتر انجام میشه .

از نظرات بقیه ی دوستان هم خیلی ممنونم.