110,536
社区成员
发帖
与我相关
我的任务
分享
async void Loop()
{
while(true)
{
执行逻辑();
Task.Delay(10*1000);
}
}
Task.Run(() => { LoopRefreshList(); });
private void LoopRefreshList()
{
//不想用定时器
while (this.btnSwitch.Text == "结束")
{
_serverInfoRepository.InitData();
ServerInfoSerivce.RunAllScriptAssist();
ServerInfoSerivce.RunAllTouchSprite();
for (int i = 0; i <= 10; i++)
{
this.SetlbDateTime(new TimeSpan(0,0, 10 - i)); //这个是在UI上输出倒计时,下一次刷新处理列表的时间
Task.Delay(1000).Wait();
if (i == 10) { break; }
}
}
}
实现的办法我知道有几种。。。只是不知道哪种比较合适,如果用Task.Delay(1000).Wait();来做延时10秒继续运行,这个本身没问题的话,我就放心了。
主要是这个项目最近很卡。
而整套逻辑中,只有这个循环里面占用的CPU较大,我就在纠结问题出在哪里。更正下:async void method() { while(条件) { await Task.Run(处理逻辑); } }