【发布时间】:2013-10-02 23:11:04
【问题描述】:
我有一个运行线程来播放一首或多首歌曲的应用程序。为了创建播放列表,我每隔一个网格更新一次信息。创建播放列表后,如果没有启动线程并且播放列表大于0,我运行一个线程播放歌曲。 这是我做的扫描:
if(!thrPlayMusic.IsAlive && existData)
thrPlayMusic.Start();
但是,在某些情况下,系统正在生成异常ThreadStateException(),表示线程已经启动。但是他怎么能抛出这个异常,并检查线程是否处于活动状态,然后开始处理呢?有人能帮我吗?谢谢!
【问题讨论】:
-
你应该锁定 if
-
我不明白你在说什么......
-
c# lock reference -> msdn.microsoft.com/it-it/library/c5kehkcz.aspx 很可能线程在您检查之后但在您发出 start 语句之前启动
-
您在哪个线程上创建播放列表?哪个线程正在运行您发布的代码?
标签: c# .net multithreading