我有功能,开始新任务:
private async Task GetCamera()
{
....
await Task.Run(async () => await MyAwesomeTask());//eternal cycle
int a=10;//how start without waiting for the end of the thread?
int b=15;
SomeFunction(a,b);
}
private async Task MyAwesomeTask()
{
while (true)
{
await Task.Delay(TimeSpan.FromSeconds(0.5));
//some task
}
}
但下一行(int a = 10;)等待Task结束。我需要,(int a = 10;) NOT 等待下一步。我该怎么办?
答案 0 :(得分:2)
因为你等待你的Task.Run(...)调用,你的GetCamera方法的执行在await行上被'暂停',直到Task完成。一旦异步调用终止,GetCamera方法的执行就会继续。
await运算符应用于异步方法中的任务,以暂停方法的执行,直到等待的任务完成。该任务代表了正在进行的工作。
要让您的方法继续执行,您需要删除等待。