void Render (int renderId, int threadId)
{
// Fetch the next tile index and render it.
for (;;) {
int tileIndex = Interlocked.Increment (ref current_tile);
if (tileIndex >= total_tiles || cancel_render_flag)
return;
RenderTile (renderId, threadId, tileIndex);
}
}