Example #1
0
    static void Main(string[] args)
    {
        var hs = new HanoiSolver(discs: 3);

        hs.start();

        Console.ReadKey();
    }
Example #2
0
        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);
        }