• 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

    • VR is dead on the PS at this rate, sales just aren't there. Way more VR push on the PC, even Sony knows this and that's why they added PC support to the PSVR.
    • Borderlands series, Rematch, Broken Arrow, and more get Nvidia GeForce NOW support by Pulasthi Ariyasinghe Another Nvidia GeForce NOW games update has arrived, meaning subscribers now have even more games to jump into via the cloud if they own a copy. The latest wave touts 13 more games, and that includes the Borderlands franchise from Gearbox, Remedy's brand-new cooperative shooter FBC: Firebreak, and more. With the fourth entry now on the way, for those who have yet to jump into Gearbox's wacky looter shooter universe, Borderlands, Borderlands 2, Borderlands 3, and even Borderlands: The Pre-Sequel are now a part of GeForce NOW. The Sifu developer's rule-less soccer experience, Rematch, has also been released to standard edition owners today. With the latest update, for owners of the game or PC Game Pass subscribers, it is also accessible via the cloud on GeForce NOW. Here are the games announced for the program this week: REMATCH (New release on Steam, Xbox, available on PC Game Pass, June 16) Broken Arrow (New release on Steam, June 19) Crime Simulator (New release on Steam, June 17) Date Everything! (New release on Steam, June 17) FBC: Firebreak (New release on Steam, Xbox, available on PC Game Pass, June 17) Lost in Random: The Eternal Die (New release on Steam, Xbox, available on PC Game Pass, June 17) Architect Life: A House Design Simulator (New release on Steam, June 19) Borderlands Game of the Year Enhanced (Steam) Borderlands 2 (Steam, Epic Games Store) Borderlands 3 (Steam, Epic Games Store) Borderlands: The Pre-Sequel (Steam, Epic Games Store) METAL EDEN Demo (Steam) Torque Drift 2 (Epic Games Store) As always though, keep in mind that unlike subscription services like Game Pass, a copy of a game must be owned by the GeForce NOW member (or at least have a license via PC Game Pass) to start playing via Nvidia's cloud servers.
    • WHAT? First of all, Azure, literally, runs on THE LINUX KERNEL. I know, right? Windows is easier to develop drivers? This must be the joke of the century! Developing drivers on Linux, you can interact with low level implementation straight to the core. You can build and test them with standard tools like GCC and Make, no need for a full blown IDE or SDKs, only a kernel header and a Makefile. You can load/unload drivers dynamically, without rebooting, which makes debugging MUCH easier. You don't need to sign drivers, unlike Windows, even for local testing. And a ton of other conveniences. "There is no way a Linux distribution can compete against Windows". Literally, SteamOS competes against Windows on handhelds, playing games WRITTEN for Windows, BETTER than Windows. "DirectX is the most powerful API"? Really? Vulkan provides more low level control, less overhead, scales better with more threads, it's cross platform and extensible. How, exactly, is "DirectX the most powerful API"?
    • It's easier for the console market to pull in more revenue when they're prices are higher compared to the PC where games often come out cheaper than their console versions or go on sale quicker. Having said that, I'm not going to be paying $70 or $80 for a game, regardless of the platform it's on. Revenue aside, because raising prices on consoles skew things when the prices on the PC often stay around the same levels, it's been shown that the PC market is growing while the console market is overall flat. PC will pass consoles soon dropping them into 3rd place. And the PS5 being on track to pass the PS4 doesn't say much, if the console market was actually still growing Sony would've passed the PS2 as it's best selling console with the PS3, and the PS4 would've outsold both and so on. That's not happening. It took Nintendo to release a totally different hybrid system with the Switch to inject some new life into the "console" market. Even then it's pushed as a handheld first and the majority who buy it do so because it's portable and at a good price.
    • As with the rest of the misleading statement you made about SteamOS "limitations", you are wrong again. No, the XBOX does NOT run "slimmed down and modified Windows". It runs a HEAVILY modified version of the Hyper-V hypervisor, called "Nanovisor" and 2 VM partitions. One for games, one for the apps. It is NOT Windows, it can NOT run Windows games and its DirectX components are NOT the same as for Windows, they are customized for XBOX.
  • Recent Achievements

    • First Post
      MikeK13 earned a badge
      First Post
    • One Month Later
      OHI Accounting earned a badge
      One Month Later
    • Week One Done
      OHI Accounting earned a badge
      Week One Done
    • First Post
      Thornskade earned a badge
      First Post
    • Week One Done
      Higante88 earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      717
    2. 2
      ATLien_0
      273
    3. 3
      Michael Scrip
      203
    4. 4
      +FloatingFatMan
      182
    5. 5
      Steven P.
      128
  • Tell a friend

    Love Neowin? Tell a friend!