在这种情况下我应该使用哪种设计模式:
而且我想实现更多的技术,我不想修改核心,我只想向系统添加模块。例如,添加电报消息、Twitter 消息或其他电子邮件提供商。
有什么推荐吗?
我有一个 async Func<> ,我在其中“等待”异步方法。我想使用 TaskFactory.StartNew 对 Func<> 进行大量并行调用,如下面的代码,但出现以下错误:
转换
'System.Threading.Tasks.Task<System.Threading.Tasks.Task<Result>>'为错误'System.Threading.Tasks.Task<Result>'
如何并行调用异步方法?
Func<object, Task<Result>> action = async (object m) =>
{
try
{
return await Send<Message, Result>(m as Message);
}
catch (Exception exc)
{
Result result = new Result();
(result as ResponseBaseDto).Success = false;
(result as ResponseBaseDto).ErrorList = new List<Entities.Common.ErrorDto>()
{
new Entities.Common.ErrorDto{ Code = 9999, Message = exc.Message }
};
return result;
}
};
// Error on request.ForEach
request.ForEach(r => sending.Add(taskFactory.StartNew<Task<Result>>(action, r)));
var tareas = sending.ToArray();
await Task.WhenAll(tareas); …Run Code Online (Sandbox Code Playgroud)