Example #1
0
        public void Start(object obj)
        {
            if (_startType == StartType.Standard)
            {
                throw new InvalidOperationException("Must use parameterless Start() method instead!");
            }

            if (_task != null)
            {
                throw new ThreadStateException("Thread already started!");
            }

            _task = new Task(() => _parameterizedStart(obj), _tokenSource.Token, TaskCreationOptions.LongRunning);
            if (IsBackground)
            {
                _task.Start();
            }
            else
            {
                _task.RunSynchronously();
            }
        }
Example #2
0
        public void Start()
        {
            if (_startType == StartType.Parameterized)
            {
                throw new InvalidOperationException("Must supply argument for ParameterizedThreadStart!");
            }

            if (_task != null)
            {
                throw new ThreadStateException("Thread already started!");
            }

            _task = new Task(() => _start(), _tokenSource.Token, TaskCreationOptions.LongRunning);
            if (IsBackground)
            {
                _task.Start();
            }
            else
            {
                _task.RunSynchronously();
            }
        }