IT CSharp Time - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Data, ora, intervalli e timer
DateTime e DateTimeOffset descrivono la data e l'ora, TimeSpan l'intervallo, DateOnly/TimeOnly le singole parti. Per misurare la durata, utilizzare Stopwatch; L'orologio del sistema potrebbe cambiare. Il timer chiama il codice secondo un programma e non conferma gli eventi di gioco.
Esempio semplice (Example.cs)
Salvare questo esempio separatamente come Example.cs. Eseguirlo indipendentemente dagli altri esempi di questa pagina.
Example.cs:
// PROJECT-EXAMPLE
var delay = System.TimeSpan.FromMilliseconds(10);
await System.Threading.Tasks.Task.Delay(delay);
System.Console.WriteLine("Done");
Risultato:
Done
var started = System.Diagnostics.Stopwatch.StartNew();
await WaitAsync(100);
UO.Print($"Elapsed: {started.ElapsedMilliseconds} ms");
DateTimeOffset now = DateTimeOffset.UtcNow;
TimeSpan interval = TimeSpan.FromSeconds(2);
UO.Print($"UTC: {now:O}; interval: {interval.TotalMilliseconds} ms");
Per l'attesa asincrona periodica c'è PeriodicTimer. Rilascia il timer al termine dello script e trasferisci Cancellation a WaitForNextTickAsync. Una pausa nella sceneggiatura e il passaggio del tempo reale sono due cose diverse.
Documentazione ufficiale: Data, ora, intervalli e timer - Microsoft Learn.