2017-07-03 22 views
2

到目前爲止,我瞭解到,在C#標準的消息循環是這樣的:爲什麼C#標準的消息循環不嚴重增加CPU使用率

while(GetMessage(&msg, NULL, 0, 0)) 
{ 
    TranslateMessage(&msg); 
    DispatchMessage(&msg); 
} 

但我想知道,它是如何保持CPU使用率低,響應時間很好(在Windows窗體場景中)? 是因爲它將線程設置爲低優先級還是別的東西?

回答

2

因爲GetMessage不會立即返回,所以會在等待時讓CPU自由地做其他事情而阻塞