Microsoft Graph dotNet sdk线程安全吗?

时间:2018-02-21 10:40:37

标签: c# thread-safety microsoft-graph

Graph dotNet sdk是否在所有领域都实现了线程安全?

E.g。多个工作线程想要检索用户电子邮件:

var request = graphClient.Users[usrId].Messages.Request().Top(top).Select(select).Skip(10);
var result = await request.GetAsync();

发送/执行请求应该是线程安全的,因为每个请求都在自己的任务中完成。 但请求的创建是否实现了线程安全?

所以我的问题是

  • 是否在sdk线程安全中创建了请求?
  • 是否可以访问图形客户端实例Thread-Safe?

1 个答案:

答案 0 :(得分:1)

不,.Net Graph Client库在所有领域都没有实现线程安全。通过快速查看库代码,BaseClient baseUrl是可设置的,可以启用两个线程正在访问该变量的场景。这可能导致对意外的baseUrls发出请求。一旦通过GraphServiceClient提供的baseUrl构建了请求,请求的创建应该是线程安全的。

关于对Graph客户端实例和线程安全的访问,如果我理解正确,那就是你如何设计应用程序对库的访问权。