我在这里找到了这样的代码的一部分:
string stringExample = "";
async private Task myMethod (int MyNumber)
{
var myString = await getStringFromIntAsync(myNumber);
stringExample = myString;
}
private main()
{
var t = Task.Run(async () => {await myMethod(123456);});
t.Wait();
}
这对我有用。 但现在是我的问题:我如何等待具有这样的返回值的异步任务方法:
async private Task<string> myMethod (int MyNumber)
{
var myString = await getStringFromIntAsync(myNumber);
return myString;
}
我尝试使用Task.Run()但它不起作用。
感谢Agredo
答案 0 :(得分:0)
如果你想只是普通阻止,那么你可以用GetAwaiter().GetResult()
:
private main()
{
myMethod(123456).GetAwaiter().GetResult();
}
如果myMethod
返回值:
private main()
{
var result = myMethod(123456).GetAwaiter().GetResult();
}
请注意,阻止异步代码是一种反模式,应该在实际代码中避免使用。此规则的一个值得注意的例外是控制台应用程序的Main
方法。