繁体   English   中英

是什么会导致在.NET 4.5下完全正常的代码在3.5以下的情况下变得CPU贪婪呢?

[英]What could cause code that's perfectly fine under .NET 4.5 to be CPU greedy under 3.5?

我正在使用netmq的最新预发行版,发现以下程序在.NET 4.5下几乎不消耗CPU,但在框架3.5版下固定为13%。

class Program
{
    static void Main(string[] args)
    {
        ThreadPool.QueueUserWorkItem((o) =>
        {
            using (NetMQContext context = NetMQContext.Create())
            {
                using (NetMQSocket requester = context.CreateRequestSocket()) // creating this socket seems to fix cpu consumptio at 13%.. why?
                {
                    Console.WriteLine("LOADED");
                    Console.ReadKey();
                }
                Console.WriteLine("DISPOSED SOCKET");
                Console.ReadKey();
            }
            Console.WriteLine("DISPOSED CONTEXT");
            Console.ReadKey();
        });

        while (true) Thread.Sleep(1000);
    }
}

有人知道这种意外行为的潜在原因吗?

编辑:确认这发生在.NET 3.5中,并且不在4或4.5中发生

因此,问题似乎出在.Net 3.5中,Socket.Select有一个错误。

-1超时的Socket.Select()完全没有阻塞

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM