Query and manipulate data - by using Data Provider for Entity Framework

You need to execute a query against a SQL Server database and populate a set of objects. The retrieval operation is time-consuming, and users are complaining about sluggishness. You need to make sure the application doesn’t seem to “hang” while the operation is taking place. Which of the following would accomplish that task? (Choose all that apply)

Use the ExecuteScalarAsync method of the EntityCommand class.
Use the ExecuteReader method of the EntityCommand class.
Use the ExecuteReaderAsync method of the SqlCommand class.
Use the ExecuteReaderAsync method of the System.Data.OleDb.Command class.