• 0

[C#] How do I pause/delay/wait in C#?


Question

18 answers to this question

Recommended Posts

  • 0
there's no "Correct" answer. you can do it both ways and both of them work great. the Thread.Sleep i personally thin is better cause you add even less things to the code.

584749339[/snapback]

Agreed, that was the point I was trying to make. Guess it didn't sound like it. :whistle:

  • 0
yeah no correct answer here. That's the good thing about programming, many ways to do it! Just like cooking. :)

584754287[/snapback]

And just like cooking, there are many ways to go horribly, horribly wrong :x.

I usually use the Timer function for when I want some code to execute a certain time after it is started. The Thread.Sleep is better for when you want to pause the execution.

  • 0
And just like cooking, there are many ways to go horribly, horribly wrong :x.

I usually use the Timer function for when I want some code to execute a certain time after it is started. The Thread.Sleep is better for when you want to pause the execution.

584758671[/snapback]

Yeah, I ended up using the Timer function that fires an event every 1000 ticks. It was easier to implement than a thread for what I was trying to do.

  • 0

What if I don't want the thread to "sleep"?

I just want it to complete the current function. Then, wait 5 seconds?

Thanks in advance.

you can do something like this:

for(int i = 0; i < 50; i++)

{

System.Threading.Thread.Sleep(100);

Application.DoEvents();

}

  • 0

What if I don't want the thread to "sleep"?

I just want it to complete the current function. Then, wait 5 seconds?

Thanks in advance.

Use a timer. As Andreas pointed out, sleeping/busy loop is going to block the UI thread, and that's not a good thing to do. Blocking means that the UI won't process any messages in its message loop for the time of the block. The user may try to drag or click or something and think the app is broken. Keep the UI thread free for UI messages.

  • 0
you can do something like this:

for(int i = 0; i < 50; i++)

{

System.Threading.Thread.Sleep(100);

Application.DoEvents();

}

In a Windows Form Application I created, I tried this, and other "Thread.Sleep()" statements and they didn't do anything - the app didn't "sleep" - though I invoked the System.Threading namespace and I even tried 15000 in there. I'm thinking the only way you can pause such an app is using a timer.tick function, and just doing a timer1.Start() and timer1.Stop() when you want it to go or stop - so maybe there is only one way to do it.

-Tom

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Where is the "Wow!" emoji? This'll have to do 🤩
    • I hear you on browser password manager, in my case I have two Google profiles, one was created when Google decided to grandfather us out of Workspace for Domains (with the replacement being too expensive for 25 users) resulting in my domain email address no longer being able to be registered to a new Workspace I created (for myself and another co-owner) so I could use Takeout and sync over some stuff to the new Workspace. Then I have my personal Google profile which I could be logged into on my desktop or Mobile, so I am saving passwords on one or the other, and when an URL changes another password for the same service gets added, it basically ends up being a giant mess. Unless I missed something is there a local decent password manager that can override the browser password managers for Chrome, Edge, Firefox (profiles) so that there is only one vault, and does that also support Passkeys (which to me are still confusing because sometimes it will ask for a Passkey on a phone I am no longer using!) Microsofts implementation of Passkeys is the worst!
    • It's utterly baffling that we have no idea when we'll get new features even well after they've been released. Why Microsoft thinks this is a good rollout strategy is beyond me.
    • If it makes anybody happy, others will need to be bitter about it. (apologies to Yogi Berra)
    • I owned a lot of Soundblaster cards over the years all the way back to the ISA slot era. I use a Soundblaster X3 external now because I'm able to run it through a KVM and have it follow the machine I happen to be using. It drives a set of JBL 305 powered monitors wonderfully. I'm not gaming or doing home theater through it, so rear channels aren't a consideration for me, though it does have side / rear / sub outputs.
  • Recent Achievements

    • First Post
      DrWankel earned a badge
      First Post
    • Reacting Well
      DrWankel earned a badge
      Reacting Well
    • Week One Done
      Supreme Spray LV earned a badge
      Week One Done
    • One Month Later
      Genuinetonerink- Dubai earned a badge
      One Month Later
    • Week One Done
      Genuinetonerink- Dubai earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      505
    2. 2
      +Edouard
      163
    3. 3
      PsYcHoKiLLa
      91
    4. 4
      Steven P.
      75
    5. 5
      Michael Scrip
      72
  • Tell a friend

    Love Neowin? Tell a friend!