我已经阅读了很多文章,但仍然无法理解这部分内容。
考虑以下代码:
private async void button1_Click(object sender, EventArgs e)
{
await Dosomething();
}
private async Task<string> Dosomething()
{
await Task.Run((() => "Do Work"));
return "I am done";
}
第一个问题:
当我点击按钮时,它将调用 DoSomething 并等待一个任务,该任务通过调用 Task.Run(如果我没有弄错的话)从线程池创建一个线程,并且所有这些都以异步方式运行。所以我成功地创建了一个线程来完成我的工作,但是以异步方式进行操作?但请考虑,我不需要任何结果返回,我只想完成工作而不获取任何结果,是否真的需要使用 async/await,如果需要,如何操作?
第二个问题:
在异步运行线程时,它是如何工作的?它是在主 UI 上但在单独的线程上运行还是在单独的线程上异步运行在该方法内部?
await
,但不要执行Task.Run
]。 - ToolmakerSteve