簡體   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