.NETCoreの異常なCPU使用率について
Sleepメソッドを使用しループを一時停止しているのですがCPU使用率が2.7%もあり、困っています。
.NETCoreのバグでしょうか?回答よろしくお願いいたします。
動作端末:Raspberry Pi 3 Model B+
Runtime: .NET Core3.0
C#
1static async Task Main(string[] args) 2 { 3 Discord discord = new Discord("URL"); 4 Crawler Crawler = new Crawler(); 5 6 try 7 { 8 while (true) 9 { 10 if ((DateTime.Now.Hour < 20 && DateTime.Now.Hour > 7)) 11 { 12 List<NewsResult> newsResults = await Crawler.GetNewsElement(); 13 newsResults.Reverse();//配列の順番入れ替え(古い順に) 14 15 foreach (var item in newsResults) 16 { 17 string logPath = $@"{Directory.GetCurrentDirectory()}/url.log"; 18 string logjson = await File.ReadAllTextAsync(logPath); 19 20 if (logjson != string.Empty) 21 { 22 URLJsonObject uRLJsonObject = JsonConvert.DeserializeObject<URLJsonObject>(logjson); 23 if ((uRLJsonObject != null) && !uRLJsonObject.URL.Contains(item.URL)) 24 { 25 uRLJsonObject.URL.Add(item.URL); 26 File.WriteAllText(logPath, JsonConvert.SerializeObject(uRLJsonObject)); 27 28 await discord.PostElement(item); 29 System.Threading.Thread.Sleep(3000); 30 31 if (uRLJsonObject.URL.Count > 50) 32 { 33 //ログファイルが大きくなりすぎないように調整 34 uRLJsonObject.URL.RemoveRange(0, 30); 35 File.WriteAllText(logPath, JsonConvert.SerializeObject(uRLJsonObject)); 36 } 37 } 38 } 39 else 40 { 41 URLJsonObject uRLJsonObject = new URLJsonObject(); 42 uRLJsonObject.URL.Add(item.URL); 43 File.WriteAllText(logPath, JsonConvert.SerializeObject(uRLJsonObject)); 44 45 await discord.PostElement(item); 46 System.Threading.Thread.Sleep(5000); 47 } 48 } 49 } 50 //問題のThread.Sleep 51 System.Threading.Thread.Sleep(900000); 52 } 53 } 54 catch (Exception ex) 55 { 56 await discord.PostErrorMessage(ex); 57 Environment.Exit(100); 58 } 59 }
回答1件
あなたの回答
tips
プレビュー