process data events in a seperate thread