static void Main(string[] args) { var hs = new HanoiSolver(discs: 3); hs.start(); Console.ReadKey(); }
public bool TryStartHanoiThread(int discsNumber, out int solverId) { lock (_rinningThreadsLock) { if (_maxThreads <= _runningThreads) { solverId = -1; return(false); } _runningThreads++; } ManualResetEvent mevent = new ManualResetEvent(false); solverId = _exeRepository.Add(discsNumber); HanoiSolver solver = new HanoiSolver(solverId, discsNumber, mevent); solver.AddListener(this.ThreadEnded); _solvers.Add(solverId, solver); ThreadPool.QueueUserWorkItem(solver.ThreadPoolCallback); return(true); }