Thread.Sleep () без замораживания пользовательского интерфейса

Во-первых, я новичок в C# и я хотел бы сделать это:

 class2.method_79(null, RoomItem_0, num, num2, 0, false, true, true); System.Threading.Thread.Sleep(250); class2.method_79(null, RoomItem_0, num, num4, 0, false, true, true); System.Threading.Thread.Sleep(300); class2.method_79(null, RoomItem_0, num, num6, 0, false, true, true); 

Но это решение замораживает пользовательский интерфейс, как я могу сделать второе событие на 250 мс после первого и т. Д. Без замораживания пользовательского интерфейса?

    4 Solutions collect form web for “Thread.Sleep () без замораживания пользовательского интерфейса”

    Самый простой способ использовать сон без замораживания streamа пользовательского интерфейса – сделать ваш метод асинхронным. Чтобы сделать ваш asynchronous метод, добавьте модификатор async .

     private void someMethod() 

    в

     private async void someMethod() 

    Теперь вы можете использовать оператор ожидания для выполнения асинхронных задач в вашем случае.

     await Task.Delay(milliseconds); 

    Это делает его асинхронным и будет выполняться асинхронно из вашего streamа пользовательского интерфейса.

    Обратите внимание, что это поддерживается только в Microsoft .NET Framework 4.5 и выше.

    ,

    Вы можете использовать Таймер диспетчера для выполнения ваших методов.

    Вы находитесь в streamе пользовательского интерфейса при вызове .Sleep(); ,

    Вот почему он замораживает пользовательский интерфейс. Если вам нужно сделать это без замораживания пользовательского интерфейса, вам нужно будет запустить код в отдельных streamах.

    Запускайте свои трудоемкие задачи в отдельном streamе. Избегайте трудоемких задач и Thread.Sleep() в streamе пользовательского интерфейса.

    Давайте будем гением компьютера.