Graph dotNet sdk是否在所有领域都实现了线程安全?
E.g。多个工作线程想要检索用户电子邮件:
var request = graphClient.Users[usrId].Messages.Request().Top(top).Select(select).Skip(10);
var result = await request.GetAsync();
发送/执行请求应该是线程安全的,因为每个请求都在自己的任务中完成。 但请求的创建是否实现了线程安全?
所以我的问题是
答案 0 :(得分:1)
不,.Net Graph Client库在所有领域都没有实现线程安全。通过快速查看库代码,BaseClient baseUrl是可设置的,可以启用两个线程正在访问该变量的场景。这可能导致对意外的baseUrls发出请求。一旦通过GraphServiceClient提供的baseUrl构建了请求,请求的创建应该是线程安全的。
关于对Graph客户端实例和线程安全的访问,如果我理解正确,那就是你如何设计应用程序对库的访问权。