2011-09-18 49 views
3

当我在我的.net应用程序中吃饭时,应用程序似乎被“阻止”。所以我问你:限制 cpu工作负载的一个特定方法? 唯一的方法是Application.DoEvents? 而且:如果我使用第三方dll,出于同样的原因(大的阐述)似乎阻止(没有响应)我的应用程序?如何避免应用程序在进行大规模阐述时没有响应?

编辑:也许线程是答案,但是,现在,我有另一个问题:是否有可能'限制'CPU使用率线程?

+0

limitng CPU使用率不会帮助你的“没有回应的问题” – Numenor

+0

试图限制cpu的使用只会让它阻塞*更长*。使用BackgroundWorker。 –

回答

1

如何避免应用程序在进行大规模阐述时没有响应?

运行任何导致与主线程不同的线程的阻塞。

如何限制特定方法的cpu工作负载?

您不能限制它的特定方法。仅适用于特定的线程。这不会解决阻塞问题。

也许线程是答案

不,不是也许。它的答案。

但是,现在,我还有另一个问题:是否有可能'限制'CPU使用线程?

那么,你可以尝试设置Thread.Priority。请注意,操作系统不必遵守您设置的优先级(因此,尝试)。另外,这只会改变执行线程的优先级。如果没有其他线程需要CPU时间,那么当然你的线程仍然会在CPU上进行调度。