• 0

[C#] Debug mode works, Start without debugging fails


Question

I have an app which works great (and as expected) when I start and run it in debug mode in VS 2008 Pro. However, when I try to "Start without debugging", the app is a bust. Here's what happens:

  1. I start the program
  2. I start the main part of my program by pushing a button
  3. The operations seem to work fine for a second, but then they don't stop when expected.
  4. Instead, the app starts using nearly 100% of the CPU and when I close it ("X" button) it still keeps running. I have to kill it through the Task Manager.

I'm not sure how to debug this, since (ahhh!) I'm running it without debugging!

Does anyone know how to debug this or has anyone faced similar circumstances? I've looked online and have found next to nothing.

19 answers to this question

Recommended Posts

  • 0

Yes, it does take 100% CPU from the debug folder. This is actually how I originally saw the problem, because I didn't want to load VS to run the program, so I tried running the exe from the debug folder and noticed the problem. Does this information suggest a certain problem?

  • 0

I have this in one of the threads:

		private void ....
		{
				.....
				WaitFor(4);
				.....
		}

		private void WaitFor(double seconds)
		{
			DateTime t = DateTime.Now.AddSeconds(seconds);
			while (DateTime.Now < t)
			{
				Application.DoEvents();
			}
		}

I know this isn't great design, but needless to say events don't easily work in this situation so I'm stuck with this for now. Could this be causing the 100% CPU usage or cause the app to hang (for more than 4 seconds) and not work?

Thanks for your continued help :-)

  • 0

Actually, it's not my thread loop. It's in one of the threads that is running. Can you explain why I should use Sleep() instead of using "busy waiting + Application.DoEvents()"? I'm not quite sure what you're getting at.

I tried your suggestion and it breaks my application as I need the program running and "doing events", but I still need to wait for some amount of time. If I can avoid it, I don't want to have to wire up events as it will mean re-writing a good amount of my code. Any more ideas :-)

  • 0

		private void ....
		{
				.....
				WaitFor(4);
				.....
		}

		private void WaitFor(double seconds)
		{
			DateTime t = DateTime.Now.AddSeconds(seconds);
			while (DateTime.Now < t)
			{
				Application.DoEvents();
				Thread.Sleep(1);
			}
		}

Try this way. It should do events and not waste 100% CPU.

  • 0

Application.DoEvents() doesn't wait if there's nothing the Application engine needs to do. Put the Thread.Sleep() in and you should be good. It sounds like your background thread is eating up all the time. (I usually use Thread.Sleep(500) but I guess 1 should work ok.)

You can also use a System.Timer to call a delegate after the elapsed time.

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

    • No registered users viewing this page.
  • Posts

    • PC gaming market is being killed by the high prices of GPU's and all these smaller LLM's that people are playing with are causing it. That and greed. AMD is still way behind NVIDIA. The number of games that still does not support FRS3 is bad, FRS4 is a even worse, and on the flip side you have to look far and wide to find a game that does not support DLSS (newer games). Then there is power consumption which AMD always lags behind in.
    • Yeah, HDMI 2.1 was a complete scam. It had a lot of impressive improvements over 2.0, but they were basically all optional, so seeing a HDMI 2.1 badge on a box or device meant nothing.
    • Wasn't that issue that they refused to allow the HDMI support being included in an open-sourced format? If I'm remembering that correctly, then it seems like an easy workaround would be to let people choose to either install proprietary precompiled drivers with HDMI support, or open-source drivers that don't include the super-secret HDMI stuff the Forum is so worried about. I know proprietary anything is the antithesis of the FOSS community, but if the HDMI Forum creates legal obstacles to using important hardware features of your devices, then I think offering both options is a reasonable workaround.
    • ethically, vegetables emit red, yellow or neon. Ewww..
    • I'm really hoping they don't remove the drivers from the Microsoft Update Catalog at least. An offline, alternate options is Snappy Driver Installer Origin - https://www.snappy-driver-installer.org/ Recently, to get a Serial Port-USB cable adapter to work correctly (updating an old handheld GPS), I had to downgrade the driver from the 2024 to the 2021 version.
  • Recent Achievements

    • Week One Done
      Helen Shafer earned a badge
      Week One Done
    • First Post
      emptyother earned a badge
      First Post
    • Week One Done
      Crunchy6 earned a badge
      Week One Done
    • One Month Later
      KynanSEIT earned a badge
      One Month Later
    • One Month Later
      gowtham07 earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      665
    2. 2
      ATLien_0
      271
    3. 3
      Michael Scrip
      223
    4. 4
      Steven P.
      167
    5. 5
      +FloatingFatMan
      166
  • Tell a friend

    Love Neowin? Tell a friend!