【发布时间】:2026-01-11 20:15:02
【问题描述】:
我正在创建一个线程
Thread MyThread = new Thread(async () => await MyTask());
MyThread.Start();
这有点没有意义,这是如何正确创建它的问题。
MyTask 是一个无休止的任务,它会定期启动 CPU 密集型工作
async Task MyTask ()
{
while (true)
{
await Task.Run(() => CPU_Load());
await Task.Delay(1000).ConfigureAwait(false);
}
}
CPU_Load 是一种正在完成工作的方法
void CPU_Load ()
{
*CPU_Load*
}
【问题讨论】:
-
为什么不改用线程安全的System.Threading.Timer?
-
你的问题到底是什么?
-
问题热点创建线程?正如我被告知线程类不知道异步/等待,所以它执行该方法直到它遇到第一个等待然后停止。
-
我从未使用过计时器,我快速浏览了一下,我认为它不适合我。
-
@IllSkillz 为什么计时器不适合? “定期启动 cpu 密集型工作” - 这就是计时器的作用。如果您创建了一个运行代码、等待然后再次运行该代码的线程,那么您只是编写了自己的计时器。
标签: c# asynchronous