void WorkThread()
{
InitializeOpenCL();
try
{
// continue working until canceled
while (!cts.IsCancellationRequested)
Work(Context.GetWork(this, GetType().Name));
}
catch (OperationCanceledException)
{
// ignore
}
clQueue.Finish();
clKernel.Dispose();
clKernel = null;
clBuffer0.Dispose();
clBuffer0 = null;
clBuffer1.Dispose();
clBuffer1 = null;
clQueue.Dispose();
clQueue = null;
clProgram.Dispose();
clProgram = null;
clContext.Dispose();
clContext = null;
clDevice = null;
}