I working on real-time search. At this moment on property setter which is bounded to edit text, I call a method which calls API and then fills the list with the result it looks like this:
    private string searchPhrase;
    public string SearchPhrase
    {
        get => searchPhrase;
        set
        {
            SetProperty(ref searchPhrase, value);
            RunOnMainThread(SearchResult.Clear);
            isAllFriends = false;
            currentPage = 0;
            RunInAsync(LoadData);
        }   
    }
    private async Task LoadData()
    {
        var response = await connectionRepository.GetConnections(currentPage, 
    pageSize, searchPhrase);
                foreach (UserConnection uc in response)
                {
                    if (uc.Type != UserConnection.TypeEnum.Awaiting)
                    {
                        RunOnMainThread(() =>
                            SearchResult.Add(new ConnectionUser(uc)));
                    }
                }
    }
But this way is totally useless because of it totally mashup list of a result if a text is entering quickly. So to prevent this I want to run this method async in a property but if a property is changed again I want to kill the previous Task and star it again. How can I achieve this?