/// <summary>
        /// İşçi Thread'in yapıcı metodu.
        /// </summary>
        /// <param name="workerThreadManager">İşçi Thread yönetici sınıfı.</param>
        /// <param name="workItemQueue">İş parçası kuyruğu.</param>
        /// <param name="threadName">Thread ismi.</param>
        /// <param name="isBackground">Thread arkaplan Thread'i mi?</param>
        internal WorkerThread(IWorkerThreadManager workerThreadManager, IWorkItemQueue workItemQueue, string threadName, bool isBackground)
        {
            if (workerThreadManager == null)
            {
                throw new ArgumentNullException("workerThreadManager");
            }

            if (workItemQueue == null)
            {
                throw new ArgumentNullException("workItemQueue");
            }

            if (string.IsNullOrWhiteSpace(threadName))
            {
                throw new ArgumentNullException("threadName");
            }

            m_WorkerThreadManager = workerThreadManager;
            m_WorkItemQueue       = workItemQueue;
            m_Thread = new Thread(DoWork);
            m_Thread.IsBackground = isBackground;
            m_Thread.Name         = threadName;
        }
        /// <summary>
        /// İşçi Thread'in yapıcı metodu.
        /// </summary>
        /// <param name="workerThreadManager">İşçi Thread yönetici sınıfı.</param>
        /// <param name="workItemQueue">İş parçası kuyruğu.</param>
        /// <param name="threadName">Thread ismi.</param>
        /// <param name="isBackground">Thread arkaplan Thread'i mi?</param>
        internal WorkerThread(IWorkerThreadManager workerThreadManager, IWorkItemQueue workItemQueue, string threadName, bool isBackground)
        {
            if (workerThreadManager == null)
            {
                throw new ArgumentNullException("workerThreadManager");
            }

            if (workItemQueue == null)
            {
                throw new ArgumentNullException("workItemQueue");
            }

            if (string.IsNullOrWhiteSpace(threadName))
            {
                throw new ArgumentNullException("threadName");
            }

            m_WorkerThreadManager = workerThreadManager;
            m_WorkItemQueue = workItemQueue;
            m_Thread = new Thread(DoWork);
            m_Thread.IsBackground = isBackground;
            m_Thread.Name = threadName;
        }