我使用異步方法調用 api 以獲取條目列表并使用此數據填充列表框。我想每 120 秒調用一次這種異步方法。此時有必要取消或重啟任務以防止內存泄漏嗎?我不知道如何取消或重新開始我的任務。你有什么辦法解決這個問題嗎?這是我的方法:public async Task GetChatters() { List<TwitchLib.Api.Core.Models.Undocumented.Chatters.ChatterFormatted> chatters = await api.Undocumented.GetChattersAsync(channelName); foreach (var chatter in chatters) { ListBoxViewerUpdate(chatter.Username); } await Task.Delay(TimeSpan.FromSeconds(viewerListUpdateTime)); Task.Factory.StartNew(GetChatters); }謝謝 =)
1 回答

當年話下
TA貢獻1890條經驗 獲得超9個贊
您無法取消“任務”,因為您的 API 不可取消。
一個任務本身不會導致那么多的內存泄漏。但是您的遞歸算法會導致內存泄漏,因為它將使編譯器生成的那些任務和狀態機保持活動狀態。
您還應該使用Task.Run
而不是Task.Factory.StartNew
with async-await
。
- 1 回答
- 0 關注
- 101 瀏覽
添加回答
舉報
0/150
提交
取消