UI gets stuck while loading lot of data from realm

I am trying to show 10,000 contacts on listview in xamarin forms using realm. But whenever user traverse to contact listing screen it gets freezed and loads after a while.

Moreover , i have provided an option to search from list as well and that too gets stuck as search if performing on UI thread.

Following is the code to load data from realm

public override async Task Initialize(Object data )
    {

             private Realm _realmInstance = getRealm();
            if (contactList != null)
            {
                contactList.Clear();
            }


            contactList = _realmInstance.All<Contact>().OrderByDescending(d => d.contactId).ToList(); 
            // here the binding happens with realm data
            contacts = new ObservableCollectionFast<Contact>(contactList);
    }

 public ObservableCollectionFast<Contact> contacts
        {
            get { return items; }
            set
            {
                items = value;

                OnPropertyChanged("contacts");
            }


        }

as it was taking time in loading i thought to fetch realm data in background and bind it on UI thread as follows but that is throwing error

realm accessed from incorrect thread

  await Task.Run(() => {

                contactList = _realmInstance.All<Contact>().OrderByDescending(d => d.contactId).ToList();

            });

            if (contactList.Count() > 0)
            {
                ContactListView = true;
                AddContactMsg = false;
            }
            else
            {
                AddContactMsg = true;
            }


            Device.BeginInvokeOnMainThread(() =>
            {

                contacts = new ObservableCollectionFast<Contact>(contactList);

            });

i wanted to try limiting the results by using TAKE function of LINQ but unfortunately its not supported by realm yet. not sure how i can smoothly load records from realm to listview