Io non sono ancora riuscito a capire il problema. Mi spiego: secondo me, dovresti illustrare ciò che vuoi ottenere in termini pratici nella tua applicazione e, da lì, ti verranno probabilmente spiegate varie tecniche per implementare ciò che chiedi.

Se descrivi i passi che fai senza che sia però chiaro il traguardo, risulta difficile aiutarti.

Peraltro, visto che prendi a modello il threading in Java, questo ambito è differente sotto molti aspetti nel .NET Framework, quindi non cercherei di riprodurre cose del primo nel secondo, benché ovviamente alcuni elementi teorici siano sicuramente validi per entrambi.

Ciao!