我尝试将AsanaNet集成到我的项目(https://github.com/acron0/AsanaNet)中,并且嵌套的事件处理程序回调存在一般问题。
数据的查询工作没有问题。我只是不知道所有事件处理程序/任务何时完成,因为有几个带有异步回调的 foreach 循环。虽然从工作区 2 查询所有用户,但工作区 1 中的用户尚未完成。
何时知道何时加载所有工作区中的所有用户?
上述AsanaNet的示例:
asanaConn.GetWorkspaces(asanaWorkspaces =>
{
foreach (AsanaWorkspace asanaWorkspace in asanaWorkspaces)
{
asanaConn.GetUsersInWorkspace(asanaWorkspace, asanaUsers =>
{
foreach (AsanaUser asanaUser in asanaUsers)
{
Console.WriteLine("asanaUser: " + asanaUser.Name);
}
});
}
});
回调:
public void GetTasksInWorkspace(AsanaWorkspace arg1, AsanaUser arg2, AsanaCollectionResponseEventHandler callback)
{
var request = GetBaseRequest(AsanaFunction.GetFunction(Function.GetTasksInWorkspace), arg1, arg2);
request.Go((o, h) => PackAndSendResponseCollection<AsanaTask>(o, callback), ErrorCallback);
}
要么我一直忽略它,要么现在异步方法可以与 Wait() 同步;
所以我的问题解决了。
https://github.com/acron0/AsanaNet#asananet
asana.GetMe(o =>
{
var user = o as AsanaUser;
Console.WriteLine("Hello, " + user.Name);
}).Wait(); <---------------