Using async / IPgogress instead of BackgroundWorker