正在与线程作斗争
本文关键字:斗争 线程 | 更新日期: 2023-09-27 18:00:58
我是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
}
现在我很困惑,所以我需要帮助。有人告诉我这是线程,但我在代码中没有使用任何线程。
附言:我用NAudio图书馆播放音乐,所以我在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(); (...)
第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);
可能是代码的另一部分使用了多个线程。我曾经遇到过有多个线程的情况,当我单步执行代码时,当前位置会反弹。只要你了解它在做什么,这并不是一个真正的问题,但如果你在调试器中停止执行,它可能会在你意想不到的地方停止。
如果您想停止代码中的执行,请在代码行上放置断点(F9(,然后,当您启动了一个进入代码的操作时,根据需要逐步执行。
如果你想知道还有哪些线程在运行,这里有"线程"窗口;调试时,转到"调试"窗口,选择"窗口",然后选择"线程"。如果您不是在创建自己的线程,它可能有用,也可能不有用,但有时在调试器中暂停执行时可以方便地查看可能加载的内容。