我有一个请求,我必须在龙卷风服务器中进行阻塞调用,我不希望主线程因任何原因被阻止。所以我想我会在不同的线程/进程中运行它。
存根代码如下:
public async Task<IActionResult> OnGetAsync(int? id) {
List1 = await _dbcontext.tbl1.ToListAsync();
List2 = await _dbcontext.tbl2.ToListAsync();
List3 = await _dbcontext.tbl3.ToListAsync();
List4 = await _dbcontext.tbl4.ToListAsync();
}
答案 0 :(得分:1)
time.sleep(2)
在一个单独的线程中运行,则意味着它将返回到主线程~2秒后再切换回来。对于IO来说也是如此:如果您从一个巨大的文件中file.read()
(或从队列中等待),它将在读取完成后切换到该线程。