Usando la última CTP5 con asíncrono/espera de palabras clave, escribí algo de código, que al parecer no puede compilar:¿Cómo se escribe el método asíncrono simple?
class Program
{
public class MyClass
{
async public Task<int> Test()
{
var result = await TaskEx.Run(() =>
{
Thread.Sleep(3000);
return 3;
});
return result;
}
}
static void Main(string[] args)
{
var myClass = new MyClass();
//The 'await' operator can only be used in a method or lambda marked with the 'async' modifier error ??!!
int result = await myClass.Test();
Console.ReadLine();
}
}
¿Cuál es º razón de "El operador 'esperar' sólo se puede utilizar en un método o lambda marcado con el error del modificador 'async'? " (He seleccionado la línea a la que me apunta Visual Studio)
Usted puede * * declarar '' Main' como async', y 'await'ing nada en ella * se * poner fin a su programa de – dlev
(suponiendo que tiene ningún otro subproceso de primer plano en ejecución.) Duh, seguí pensando que el error está dentro de mi método de prueba. Visual Studio debería ser más informativo con este error (como "método principal debe asincrónico") – ghord
En la versión C# 5, si marcas Main como async, obtienes un error: "No se puede marcar un punto de entrada con 'async' 'modificador' – Anthony