Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как в C# сделать функцию "ждать пока не прошло n секунд"

Данияр Абдуллин Ученик (50), открыт 2 недели назад
Я хотел сделать прогу и там нужно порождать определенное количество времени чтобы значение переменной менялось как это сделать?
5 ответов
Олег Князев Гуру (2759) 2 недели назад
using System;
using System.Threading.Tasks;

class Program
{
static async Task Main(string[] args)
{
Console.WriteLine("Начало работы программы");

await WaitForSeconds(5); // Ждать 5 секунд

Console.WriteLine("Прошло 5 секунд");
}

static async Task WaitForSeconds(int seconds)
{
await Task.Delay(seconds * 1000); // Задержка в миллисекундах
}
Максим Искусственный Интеллект (217589) 2 недели назад
Блокирующее ожидание:
 Thread.Sleep(1000 * n); 
Неблокирующее ожидание:
 await Task.Delay(1000 * n); 
Юра Соков Знаток (304) 2 недели назад
Использовать метод Thread.Sleep(). Он приостанавливает выполнение текущего потока на указанное количество миллисекунд.


 using System.Threading; 

class Program
{
static void Main()
{
Console.WriteLine("Hello, World!");
Thread.Sleep(2000); // Приостанавливает программу на 2000 миллисекунд (или 2 секунды)
Console.WriteLine("Goodbye, World!");
}
}
Jurijus Zaksas Искусственный Интеллект (458564) 2 недели назад
1001 способом можно сделать. Например, так:

 public static void DelayAction(int _DelayMs, Action _Action)  
{
Thread T = new Thread(() => { Thread.Sleep(_DelayMs); _Action.Invoke(); });
T.Start();
}

static void Main(string[] args)
{
int x = 8;
DelayAction(1000, () => x = 10);
Console.WriteLine(x);
Thread.Sleep(2000);
Console.WriteLine(x);
}
Котище рыжий Мастер (1210) 2 недели назад
Все что тут написали будет блокировать основной поток и крашить программу. Лучше использовать корутину.

private IEnumerator MyCoroutine()
(
while(условие для прекращения корутины)
{
yield return new
}
Твой код
new WaitForSeconds(n(в секундах и тип данных float));
)

Чтобы запустить StartCoroutine(MyCoroutine);
Похожие вопросы