【发布时间】:2013-06-01 09:29:21
【问题描述】:
我使用 ThreadPool.QueueUserWorkItem 在 Windows CE 上创建线程(我使用 .NET Framework 3.5)。有时线程等待某些东西并且启动得太晚了。在 QueueUserWorkItem 文档中,它说委托将在“线程池线程可用时”执行。
有没有办法强制线程池立即执行我的委托? Thread.Start() 会解决这个问题吗?
谢谢!
【问题讨论】:
-
这个我也想知道
-
如果您需要立即执行任务,那么您最好使用线程。
-
@C4stor 如果您担心操作系统应该何时安排线程运行,那么 C# 可能不适合该用例。
-
我的猜测是要么你真的不需要这个,并且等待线程池线程被释放的短时间是好的,即使你不认为它是,或者你的程序在某处滥用线程池,并完全淹没它,使其无法处理,用大量长时间运行的操作填充它,或其他一些它不适合处理的用途;在这种情况下,正确的解决方案是解决这些问题并在应用程序的其他地方正确使用线程池。
-
如果等不及,为什么还要排队?也许您可以发布更多关于您为什么使用 ThreadPool 的详细信息?
标签: c# multithreading threadpool