Dire, ho creato un pulsante personalizzato che include alcune animazioni che vengono riprodotte quando si fa clic sul pulsante. L'animazione richiede 500ms. Durante questo periodo (fino a quando l'animazione è finita), il pulsante non dovrebbe ricevere alcun input, quindi dovrebbero aspettare che gli altri elementi finiscano.
Se lo implemento in questo modo:
public async void Clicked()
{
await Animate();
}
il thread UI non verrà bloccato e l'utente sarà in grado di premere di nuovo il pulsante durante quel periodo, o premere Back
, o fare qualcos'altro che non voglio che sia in grado di fare.
Se lo implemento in questo modo:
public void Clicked()
{
Animate();
}
il thread dell'interfaccia utente verrà bloccato finché non verrà restituito Animate
.
La mia domanda è, è una buona idea bloccare il thread dell'interfaccia utente per impedire all'utente di fare doppio clic su un elemento?
Se no, quale approccio è considerato buono?