tencentyun / qcloud-sdk-dotnet

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

怎么样支持异步

zhongchunjin opened this issue · comments

await Task.Run(() => _cosXmlServer.PutObject(putRequest))
是应该这样吗?

await Task.Run(() => _cosXmlServer.PutObject(putRequest)) 是应该这样吗?

我跟你碰到了一样的疑问, 目前我使用下面的代码将回调转为Task来处理

    public Task<string> UploadFile(string filename, string type, byte[] content)
    {
        var t = new TaskCompletionSource<string>();
        var req = new PutObjectRequest("xxxxxx", filename, content);
        req.SetRequestHeader("Content-Type", type);
        _cosxml.PutObject(req, _ => { t.SetResult($"success"); },
            (exception, serverException) =>
            {
                if (serverException != null) Console.WriteLine(serverException.GetInfo());
                if (exception != null) Console.WriteLine(exception);
                t.SetResult("");
            });
        return t.Task;
    }

希望官方能再sdk中添加相关接口.

已经新增了异步的方法cos-dotnet-sdk-v5/QCloudCSharpSDK/COSXML/CosXml.cs下可以看到具体的方法,后续会优化指导文档