سلام
نمی دونم کدتون چی کار می کنه ولی می تونید از 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.
}
}