• 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

    • Microsoft shares "immediate remediation" script if you deleted this Windows system folder by Sayan Sen Following the Windows 11/10 Patch Tuesday updates for April 2025, users began noticing a new and mysterious "inetpub" folder in the C: directory. What added to the intrigue was that the folder seemed empty for many people, and thus it was assumed that it could be malicious. As such, many users even proceeded to delete the folder. However, as it turns out, Microsoft later confirmed that this folder was indeed part of the April Patch as it was delivered against the CVE-2025-21204 escalation of privilege security vulnerability. Curiously, a security researcher found that interpub itself could also in turn help threat actors permanently block Windows security updates, although, according to the tech giant, it is only categorized as a "moderate" severity at the moment, something that does not require immediate servicing. As such, Microsoft insists that inetpub must not be deleted "irrespective of whether Internet Information Services (IIS) is active." The company shared a new PowerShell script to restore the folder in case you deleted it, adding that it requires "immediate remediation." This reminds us of the recent Defender definition updates that were released for Windows image files against Lumma. In its MSRC advisory, Microsoft cautioned: "For systems with KB5055528 installed but %systemroot%\inetpub directory deleted, immediate remediation is required. If the inetpub directory has been deleted, you need to run the remediation script Set-InetpubFolderAcl.ps1. This script will: Recreate the inetpub directory if it has been deleted. Ensure that the directory permissions are correctly configured to prevent unauthorized access and potential vulnerabilities related to CVE-2025-21204. Update ACLs for the DeviceHealthAttestation directory, if it exists. This directory was created on certain Server versions by the February 2025 security updates. The script will update the ACLs for the DeviceHealthAttestation directory to ensure it is secure." To get the script, users can head over to this page on Microsoft's official PowerShell Gallery website. It should be run with elevated privileges. The page also provides some additional instructions if needed.
    • Three words...Fu**ing Hell Mate!  
  • Recent Achievements

    • Mentor
      Karlston went up a rank
      Mentor
    • One Month Later
      EdwardFranciscoVilla earned a badge
      One Month Later
    • One Month Later
      MoyaM earned a badge
      One Month Later
    • One Month Later
      qology earned a badge
      One Month Later
    • One Year In
      Frinco90 earned a badge
      One Year In
  • Popular Contributors

    1. 1
      +primortal
      489
    2. 2
      snowy owl
      258
    3. 3
      +FloatingFatMan
      253
    4. 4
      ATLien_0
      217
    5. 5
      Xenon
      152
  • Tell a friend

    Love Neowin? Tell a friend!