private void Run()
{
while (!kill)
{
//get next conversion taks from blocking collection
Task task = conversions.Take();
lock (task)
{
//run taks on thread that called RunSynchronously method
task.RunSynchronously();
//notify caller thread that task is completed
Monitor.Pulse(task);
}
}
}
in src/DinkToPdf/SynchronizedConverter.cs
private void StopThread() { lock (startLock) { if (conversionThread != null) { kill = true; while (conversionThread.ThreadState == ThreadState.Stopped) { } conversionThread = null; } } }
private void Run() { while (!kill) { //get next conversion taks from blocking collection Task task = conversions.Take();