如何使用RestSharp实现调用ExecuteAsync

时间:2014-12-19 22:46:14

标签: c# restsharp

我正在尝试使用RESTSharp调用REST服务并立即继续执行,因为我只需要启动任务但需要立即继续执行,所以我尝试使用ExecuteAsync而不是Execute。

我的代码现在应该是这样的

 IRestResponse<ExpandoObject> restResponse = client.ExecuteAsync<ExpandoObject>(restRequest, response =>
        {
           callback(response.Content);
        });

但是,我不知道如何实现回调函数,所有样本都没有显示。我认为它是这样的,但它不能编译。

 private IRestResponse<ExpandoObject> callback(string content)
    {
        return null;
    }

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

有几种方法可以实现您尝试做的事情,但它看起来像您的 回调有错误的方法签名...为​​了得到“基本”运行的东西,以下应该工作 (我补充说等待测试):

            EventWaitHandle resetEvent = new AutoResetEvent(false);
        client.ExecuteAsync(request, response =>
        {
            callback(response.Content);

            resetEvent.Set();
            return;
        });

        resetEvent.WaitOne();

    }

    private static void callback(string content)
    {
        System.Console.WriteLine(content);
    }