I am trying to call this method but it returns Await operator can only be used within an Async method
this is the code.
static void Main(string[] args)
{
config = new InstagramConfig(CliendID, ClientSecret,redirectURI);
Auth = new OAuth(config);
var scopes = new List<OAuth.Scope>();
scopes.Add(OAuth.Scope.Likes);
scopes.Add(OAuth.Scope.Basic);
scopes.Add(OAuth.Scope.Comments);
scopes.Add(OAuth.Scope.Relationships);
var link = OAuth.AuthLink(config, scopes, OAuth.ResponseType.Code);
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(link);
WebResponse webresponse = myReq.GetResponse();
await call();
}
public static async Task call()
{
var authInfo = new OAuth(config);
var response = await authInfo.RequestToken("");
var user = new Users(config, response);
var media = await user.RecentSelf();
}
How will i rectify this error?
答案 0 :(得分:3)
最简单的方法是阻止呼叫并等待。你没有得到异步行为,但是嘿 - 无论如何你都在单个线程的控制台应用程序中。
call().Wait();
如果您想要真正的异步行为,包括消息泵和同步上下文(可能因为您同时在控制台应用程序中进行了其他操作),您有几个不同的选项:
使用Stephen Toub's MSDN post中的AsyncPump
课程。
使用Stephen Cleary's AsyncEx project中的AsyncContext
课程。
如果您使用新的.NET Core(又称“DNX”),那么您可以将Main
方法设为异步,如下所示:
static async Task Main(string[] args)