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(); } }
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(); } }