Enabling asynchronous (async) search results in a call to GetFirstRow or the first call to GetNextRow blocks until the first entry is returned from the server. That is, if the search on the server requires much time, the first few results are returned quickly. This can help when populating a list box with search results. Search results are displayed as they are returned.
If async is disabled, the first call to GetFirstRow or GetNextRow will block until the server computes the entire result set and returns. Only then is the first row returned. This is not recommended if the result set is expected to be large.
If both paging and async are enabled, the first call to GetFirstRow or GetNextRow will block until the server generates and sends the first page of results. If a reasonable page size was set, results will appear immediately. More importantly, if the search results are expected to be very large, and you search for a particular entry, it is not required that you request more results from the server after you have found the entries that interest you.
A paged async search provides fine control of a search. This is useful if the search results may be very large and require extensive time from the server.
For more information about using asynchronous searches with a specific search interface, see:
- Synchronous and Asynchronous Searches with IDirectorySearch
- Searching with ActiveX Data Objects
- Searching with OLE DB