Bir kullanıcı TextBox
içine bir şey girinceye kadar kodumun yürütülmesini engellemem gerekiyor. Bununla birlikte, bu özel durumda, aslında "kullanıcı yazmayı bitirinceye kadar" beklemem gerekecek. Yani, sadece ilk kez TextChanged
olayının patlamasını beklemek istemiyorum, en son çalıştığım zamandan beri en az 500 msn geçene kadar beklemek istiyorum."Son" olayın tetiklenmesini bekleyin
Şu anda zamanlayıcıları kullanan bir şey var, her zaman TextChanged
olay zamanlayıcı yeniden başlatıldığında ve zamanlayıcı Tick
olay patlarsa, kullanıcının "yazmayı bitirdi" anlamına gelir. Orada var
- Ben yürütülmesine engellemek için gerek yoktu Şimdiye kadar bu
- için
Timer
kullanmaktan daha iyi/daha temiz bir yol olarak:şu anda bile bu yaklaşımla üç ana sorunlar var kullanıcı "yazmayı bitirdi" kadar temelde sadece kodumu
Tick
olay işleyicisine ekliyordum, ancak bu değişmedi. - Bir zaman aşımı da ayarlamalıyım, böylece kullanıcı belirli bir süre yazmayı bitirmemişse, kullanıcı için beklemediği için yönteme geri dönmelidir.
Bunu nasıl yapabilirim?
Bu, en iyi yol olabilir ... zamanlayıcıyı sıfırlama ve karar verdiğiniz zamanın x değerini yazmanızın ardından kullanıcının yazmayı tamamladığını belirten kodunuzu tetikleme. Ya da kodu kontrol için "Ayrılma" etkinliğine koyabilir ve kodunuzu çalıştırmak için bu sekmeden çıkabilirsiniz, ancak bu, sizin kullanacağınız kullanıcı deneyimi olmayabilir. –