嵌套事件处理程序回调:当全部完成时

本文关键字:全部 完成时 回调 事件处理 程序 嵌套 | 更新日期: 2023-09-27 18:31:01

我尝试将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();   <---------------