نقل قول نوشته شده توسط tooraj_azizi_1035 مشاهده تاپیک
سلام
نمی دونم کدتون چی کار می کنه ولی می تونید از Parallel.For برای توزیع اجرا روی تمام هسته های CPU استفاده کنید البته به شرط اینکه با اجرای موازی منطق کار از بین نره.
مثلاً در مورد اینکه بدونیم یک عدد اول هست یا نه میشه رنج تقسیم رو مثلاً 4 قسمت کرد و هر قسمت رو یک هسته اجرا کنه اما در مورد تابعی مثل هانوی عمل موازی سازی معنی نداره چون در هر لحظه فقط یک دیسک رو میشه برداشت امیدوارم متوجه منظورم شده باشید:


using System.Threading.Tasks;
class Test
{
static int N = 1000;

static void TestMethod()
{
// Using a named method.
Parallel.For(0, N, Method2);

// Using an anonymous method.
Parallel.For(0, N, delegate(int i)
{
// Do Work.
});

// Using a lambda expression.
Parallel.For(0, N, i =>
{
// Do Work.
});
}

static void Method2(int i)
{
// Do work.
}
}

از پارالل سعی کردم توی حلقه های for ساده برنامه استفاده کنم اما برنامه با مشکل مواجه می شه چون از بعضی از متغیرها خطا می گیره و می گه که null هستن. یعنی فکر نمی کنم بشه از موازی هم استفاده کرد. برای اون قسمتی که داره بصورت بازگشتی تابع رو دوباره فراخوانی می کنه یا برای حلقه for کسی ایده ای نداره؟
البته بدم نمی آد حلقه for این تابع رو پارالل استفاده کنم اما حقیقتش نمی دونم چطور توی این حلقه contour رو توی parallel.for بنویسم.