As the user types, I am retrieving results (text) by traversing a local word graph in a background thread. Each keystroke cancels the previous operation. If the operation completes, the data source is updated and reloadData is called on the main thread. This works great and is very fast (as fast as the user can type), even when tens of thousands of results are returned.As the user types, I am retrieving results (tex