小编Jos*_*nso的帖子

我应该在我的通知系统中使用什么设计模式?

在这种情况下我应该使用哪种设计模式:

  • 我有一个休息 API 通知系统。
  • 我可以通过电子邮件通知
  • 通过推送通知;
  • 通过WhatsApp通知。
  • 而且我想实现更多的技术,我不想修改核心,我只想向系统添加模块。例如,添加电报消息、Twitter 消息或其他电子邮件提供商。

    有什么推荐吗?

    email notifications design-patterns push-notification

    5
    推荐指数
    1
    解决办法
    4477
    查看次数

    如何将 TaskFactory.StartNew<Task<Result>> 与异步方法一起使用?

    我有一个 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)

    c# multithreading asynchronous taskfactory

    1
    推荐指数
    1
    解决办法
    1632
    查看次数