<PackageReference Include="System.Threading.Tasks" Version="2.1.2" />

ThreadWorker

public class ThreadWorker : IDisposable
public bool Finished { get; }

public int Id { get; }

public ThreadWorker(ThreadWorker[] others, int workerPosition, IProducerConsumerCollection<Task> sharedWorkQueue, IConcurrentDeque<Task> dDeque, ThreadPriority priority, ManualResetEvent handle)

public static void ParticipativeWorkerMethod(Task self, ManualResetEventSlim predicateEvt, int millisecondsTimeout, IProducerConsumerCollection<Task> sharedWorkQueue, ThreadWorker[] others, ManualResetEvent evt)

public void Dispose()

public virtual bool Equals(ThreadWorker other)

public void Pulse()

public void Stop()