Repository navigation
CSharp Time
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
DateTime та DateTimeOffset описують дату та час, TimeSpan — інтервал, DateOnly/TimeOnly — окремі частини. Для вимірювання тривалості використовуйте Stopwatch; системний годинник може змінитися. Таймер викликає код за розкладом та не підтверджує ігрові події.
Збережіть цей приклад окремо як Example.cs. Запускайте його незалежно від інших прикладів на сторінці.
Example.cs:
// PROJECT-EXAMPLE
var delay = System.TimeSpan.FromMilliseconds(10);
await System.Threading.Tasks.Task.Delay(delay);
System.Console.WriteLine("Done");Результат:
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");Для періодичного async-очікування існує PeriodicTimer. При завершенні сценарію звільняйте таймер і передавайте Cancellation у WaitForNextTickAsync. Пауза сценарію та перебіг реального часу — різні речі.
Офіційна документація: Дата, час, інтервали та таймери – Microsoft Learn.
ClassicUO — Bad Newbie & C# Scripts IDE