Sono incredibilmente nuovo alla programmazione, e ho imparato abbastanza bene finora, penso, ma non riesco ancora a capire l'idea di fare un ritardo nel modo in cui voglio. Quello su cui sto lavorando è una sorta di "gioco" di prova che utilizza un'applicazione di moduli Windows che coinvolge un sistema di combattimento. In esso, voglio creare un NPC che esegua un'azione ogni due secondi. Il problema è che voglio anche consentire al giocatore di interagire tra gli attacchi. Thread.sleep davvero non sembra funzionare per me, non solo perché non so come multithread, ma ogni volta che provo a farlo funzionare, per esempio, in questo modo:Come posso eseguire un breve ritardo in C# senza usare il sonno?
textBox1.Text += "\r\nThread Sleeps!";
System.Threading.Thread.Sleep(4000);
textBox1.Text += "\r\nThread awakens!";
Sembra di insistere a dormire prima, quindi stampare entrambe le righe.
Penso che sia tutto quello che posso dire al momento, ma se è ancora troppo vago o prolisso, sentitevi liberi di dirmelo.
In breve, In C# Voglio fare qualcosa in ritardo prima dell'esecuzione, ma allo stesso tempo consentire l'interazione dell'utente.
è possibile utilizzare il timer invece e sparare al tuo intervallo ... – Rohit
Il thread è anche responsabile della stampa dell'interfaccia utente, ma poiché lo si blocca usando 'Sleep' non è possibile aggiornare l'interfaccia utente che mostra la prima linea. – user2674389
Utilizzare Task.Delay anziché Sleep. Quindi non avrai problemi con l'interfaccia utente bloccata. Questa nuova funzione è disponibile in .Net 4.5. – Ohlin