1

我正在使用 .NET 框架来设计一个 http 服务器。我使用 .NET 的 http 库。.NET 有 GetContext() 方法,它是一个阻塞方法,将返回一个 HttpListenerContext 对象。在网站上,它说:“此方法在等待传入请求时阻塞”。但是,它会忙着等待吗?这意味着它在等待传入请求时是否使用 CPU?如果不是,它有什么作用?释放CPU的使用权,让其他进程使用CPU?

4

1 回答 1

0

我在破译代码(通过 R# 获得)时遇到了麻烦,虽然它确实while(true)在那里做了一个,但它正在执行 Hans Passant 评论中提到的 winapi 调用,这可能会阻塞,所以它不一定在忙着等待。

因此,正如 Hans Passant 所说,除非您的经验另有说明,否则它很可能会做正确的事。它不应该阻止其他进程获得公平的 CPU 时间。

但是,它会阻塞您当前的线程,因此如果您在任何类型的应用程序的主线程中运行它,它将使其无响应,但您计算机上的其他进程应该没问题。

于 2013-11-01T00:01:15.647 回答