我在微软网站上的线程教程中阅读了以下内容:
http://msdn.microsoft.com/en-us/library/aa645740(v=vs.71).aspx http://msdn.microsoft.com/en-us/library/aa645740%28v=vs.71%29.aspx
MSDN 建议使用以下方法来等待线程变为活动状态:
while (!oThread.IsAlive);
这是推荐的等待方式吗?插入“DoEvents”调用以允许主线程保持响应会更好吗?如果出现问题并且线程永远不会“活跃”,应该如何进行错误处理?如果这是不好的做法,那么什么时候最好使用 IsAlive?
一些版主已将其标记为重复,但他们引用的另一个问题没有提及有关 IsAlive、DoEvents 或线程无法启动时的正确错误处理的任何信息。我的问题与我在问题中链接到的 MSDN 文章及其使用 IsAlive 的繁忙循环的建议特别相关。
由于还没有官方答案...你在MSDN上看到的都是2003年的,这是相对较旧的技术。对于你想做的事情,我会使用任务并行库(TPL) http://msdn.microsoft.com/en-gb/library/dd460717.aspx。这需要 .NET Framework 4.0+。
有关如何使用 TPL 来满足您的需求的精彩教程,请参阅:
任务并行 1(共 n) http://www.codeproject.com/Articles/152765/Task-Parallel-Library-1-of-n.
J. Albahari 的 C# 线程 http://www.albahari.com/threading/.
一旦您掌握了 TPL,请随时回来询问特定问题。
我希望这有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)