我在从 TaskCompleteSource 获取数据时遇到了一些麻烦。我正在向服务器发出异步请求,它应该从登录页面返回 HTML。这工作同步,但不是异步。
调用 client.ExecuteAsync 时,它是否在尝试从 TaskCompleteSource 获取数据之前等待响应?我对这里发生的事情感到非常困惑。
public Task<bool> login()
{
var tcs1 = new TaskCompletionSource<CsQuery.CQ>();
var tcs2 = new TaskCompletionSource<bool>();
RestSharp.RestRequest request;
CsQuery.CQ dom;
request = new RestSharp.RestRequest("/accounts/login/", RestSharp.Method.GET);
client.ExecuteAsync(request, (asyncResponse, handle) =>
{
tcs1.SetResult(asyncResponse.Content);
});
// Get the token needed to make the login request
dom = tcs1.Task.ToString();
// Other Code