WPF, how to implement async/await?
<p>I'm learning how to webscrape in WPF. I check the site every 20sec, update my ObservableCollection (myClients) according to search results and display it in Listview (myList). I have 2 Buttons, one to start search and one to stop it.</p>

<p>I didn't know how to implement button autoclick every X sec (which would solve all my problems, am i right?) so i had to use Task.Delay(20000). Program works, it doesn't freeze right at the start like if i had used Thread.Sleep(), but if i press the Stop button and then Start, everything freezes.</p>

<p>I will upload only portion of the code that seems to be the problem. Note that the whole program at the moment is mostly reverse-engineered from several different programs as i am still a beginner.</p>

<pre><code>        private async void Button_Click(object sender, RoutedEventArgs e) //Start button
    {
        string car;
        string price;
        string link;

        wantToAbort = false;

        while (!wantToAbort)
        {

            // ----Simulate GET request----

            //-----End GET----

            myList.ItemsSource = myClients;
            string searchCar = txtBlock.Text + " " + txtBlock2.Text;

            var articleNodes = htmlDoc.DocumentNode.SelectNodes($"//*[@id='main_content']/div[1]/div[2]/ul[1]//*[text()[contains(., '{searchCar}')]]");

            if (articleNodes != null &amp;&amp; articleNodes.Any())
            {

                foreach (var articleNode in articleNodes)
                {
                    car = WebUtility.HtmlDecode(articleNode.InnerText);
                    price = WebUtility.HtmlDecode(articleNode.ParentNode.ParentNode.SelectSingleNode("span").InnerText);
                    link = WebUtility.HtmlDecode(articleNode.ParentNode.ParentNode.Attributes["href"].Value);

                    var tempUser = new User(car, price, link);
                    if (!myClients.Any(x=&gt;x.Link == tempUser.Link))
                    {
                        myClients.Insert(0, tempUser); //Inserts new item if Links are different 
                        txtBlock3.Text = "Searching...";
                    }
                }

                await Task.Delay(20000); //This seems to be an issue
            }

        }
    }


    private void Button_Click_1(object sender, RoutedEventArgs e) //Stop button
    {
        wantToAbort = true;
        txtBlock3.Text = "Ready to search again!";
    }
</code></pre>