【问题标题】:AddSingleton and async methodsAddSingleton 和异步方法
【发布时间】:2019-10-17 19:00:33
【问题描述】:

阅读this question 接受的答案,上面写着:

“瞬态 - 实体框架上下文不能由 2 个线程共享,所以如果你想做任何异步工作。你会使用瞬态,以便为每个组件创建一个新的上下文实例。否则你会有等待作用域组件完成,然后再移动到下一个。”

这是否意味着在异步调用期间 AddSingleton 和 AddScoped 会阻塞?

【问题讨论】:

  • 对象构造是一个同步过程。具体有什么问题?
  • @DanielA.White 没有任何问题。我只是想了解 AddTransient vs AddSingleton vs AddScoped 的优缺点。引用中接受的答案听起来像是 AddScoped 在多个异步调用期间阻塞。
  • 更多关于注册组件的线程安全性。

标签: c# asynchronous dependency-injection .net-core async-await


【解决方案1】:

Transient::每次通过相同的 HttpRequest 调用类或服务时,将使用一个新实例,同时在管道中处理它。

Scoped:将在单个 HttpRequest 的所有管道处理中使用相同的实例。

Singelton:将为浏览您网站的所有用户的所有 HttpRequests 的所有 httprequests 使用相同的实例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-27
    • 2013-06-12
    • 1970-01-01
    • 2020-09-16
    • 1970-01-01
    • 2018-02-24
    • 2012-11-14
    • 1970-01-01
    相关资源
    最近更新 更多