我是C#的新手,我正在与线程(也许)挣扎。
当我开始调试并逐个执行时,...并且加载表单已完成,程序被放置在这样的奇怪位置:
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (args.Length > 0)
Application.Run(new frmMain(args[1]));
else
Application.Run(new frmMain());
} // Stops here
我怀疑这是正常的,所以我创建了新项目并执行了。和之前的结果不同:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1()); // Stops here
}
现在我很困惑,所以我需要帮助。有人告诉我它是线程,但我没有在我的代码中使用任何线程。
P.S。我使用NAudio Library播放音乐,所以我在frmMain类中声明了这样:
using System;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using NAudio;
using NAudio.Wave;
using TagLib;
(...)
AudioFileReader _audioFileReader;
IWavePlayer _waveOutDevice = new WaveOut();
(...)
P.S。 2 ..这是frmMain的构造函数。
InitializeComponent();
this.listMusic.DragOver += new DragEventHandler(this.FileDragOver);
this.listMusic.DragDrop += new DragEventHandler(this.FileDragDrop);
this.listMusic.DoubleClick += new EventHandler(this.listDoubleClick);
_waveOutDevice.PlaybackStopped += new EventHandler<StoppedEventArgs>(this.PlaybackStopped);
答案 0 :(得分:-2)
可能是代码的另一部分正在使用多个线程。我有过多线程的情况,当我单步执行代码时,当前位置会反弹。只要你理解它在做什么,这不是一个真正的问题,但如果你在调试器中停止执行,它就会停在你不期望的地方。
如果要在代码中停止执行,请在代码行上放置断点(F9),然后,当您启动输入代码的操作时,请根据需要逐步执行。
如果您对正在运行的其他线程感到好奇,那么就有Threads窗口;在调试时,转到Debug窗口,选择Windows,然后选择Threads。如果您没有创建自己的线程,它可能有用,也可能没有用,但有时候在调试器中暂停执行时看到可能加载的内容会很方便。