怎么样支持异步
zhongchunjin opened this issue · comments
zhongchunjin commented
await Task.Run(() => _cosXmlServer.PutObject(putRequest))
是应该这样吗?
libvirgo commented
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中添加相关接口.
learningZhang commented
已经新增了异步的方法cos-dotnet-sdk-v5/QCloudCSharpSDK/COSXML/CosXml.cs下可以看到具体的方法,后续会优化指导文档