Running and interacting with a async task from a WPF gui

I have a WPF GUI, where I want to press a button to start a long task without freezing the window for the duration of the task. While the task is running I would like to get reports on progress, and I would like to incorporate another button that will stop the task at any time I choose.

I cannot figure the correct way to use async/await/task. I can;t include everything I've tried, but this is whatI have at the moment.