replace Threads with TPL Tasks