SearchIndexer.Finish
Declaration
public void Finish();public void Finish(string[] removedDocuments);public void Finish(Unity.Android.Gradle.Manifest.Action threadCompletedCallback);public void Finish(Unity.Android.Gradle.Manifest.Action threadCompletedCallback, string[] removedDocuments);Obsolete public void Finish(Action<byte[]> threadCompletedCallback, string[] removedDocuments);Obsolete public void Finish(Action<byte[]> threadCompletedCallback, string[] removedDocuments, bool saveBytes);Параметры
| Параметр | Описание |
|---|---|
| threadCompletedCallback | Обратный вызов вызывается, когда индекс готов к использованию. |
| removedDocuments | Документы, подлежащие исключению из текущего указателя (если таковые имеются). |
| saveBytes | Указывает, должна ли система возвращать двоичный поток индекса в виде массива байтов. |
Описание
Завершение текущего индекса, сортировка и компиляция всех индексов.
using System.Linq; using UnityEditor; using UnityEditor.Search; using UnityEngine; /// <summary> /// SearchIndexer.Finish is always a threaded operation, meaning that all indexes /// will be computed in a thread and Search will callback when the index is ready /// to be used. /// </summary> static class Example_SearchIndexer_Finish { [MenuItem("Examples/SearchIndexer/Finish")] public static void Run() { // Create an indexer and wait for indexing to complete in the current thread. var si = new SearchIndexer("SearchIndexerExample", FileUtil.GetUniqueTempPathInProject()); si.Start(); si.AddProperty("wait", "yes", si.AddDocument("Wait")); si.Finish(); while (!si.IsReady()) ; Debug.Assert(si.IsReady()); // Reset the indexer and receive a callback when the indexing is completed. si.Start(clear: true); si.AddProperty("wait", "callback", si.AddDocument("Callback")); si.Finish(() => Debug.Log("Indexing is ready.")); while (!si.IsReady()) ; // Reset the indexer and receive a callback when the indexing is completed. // With that override you can also indicate if you want any documents to be deleted si.Start(clear: false); si.AddProperty("wait", "callback", si.AddDocument("CallbackBytes")); si.AddProperty("wait", "callback", si.AddDocument("DeleteMe")); si.Finish(() => { Debug.Log($"Indexing is ready."); // Dispose of the SearchIndexer when you are done with it. si.Dispose(); }, new string[] { "Callback", "DeleteMe" }); } }