В настоящее время я реализую автозаполнение, которое запускает поиск в веб-службе, когда пользователь вводит текст.C# Наблюдаемая задержка до тех пор, пока не будет выполнено определенное условие
textChange.Subscribe(this.TextChanged);
Кроме того у меня есть свойство в моем классе, указывающий, если поиск работает IsRunning
.
Теперь я хочу буферизировать ввод пользователя, а IsRunning==true
и запустить метод TextChange
, только если IsRunning==false
с введенным текстом.
Не могли бы вы мне помочь?
Edit: Пример кода, чтобы получить представление без использования реактивная:
public class AutoComplete
{
private bool isRunning;
private string textBuffer;
public AutoComplete()
{
this.textChanged += this.TextChanged;
}
public void TextChanged(string text)
{
if (isRunning) textBuffer = text;
else Search(text);
}
public void Search(string text)
{
isRunning = true;
// DoSearch()
isRunning = false;
// TODO: Search finished, check if textBuffer was filled and reexecute search with the new termn
}
}
Я обновил свой вопрос – coalmee