Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Google.Cloud.Datastore.V1.DatastoreDb是否线程安全?_C#_Google Cloud Platform_Google Cloud Datastore - Fatal编程技术网

C# Google.Cloud.Datastore.V1.DatastoreDb是否线程安全?

C# Google.Cloud.Datastore.V1.DatastoreDb是否线程安全?,c#,google-cloud-platform,google-cloud-datastore,C#,Google Cloud Platform,Google Cloud Datastore,我想知道,在c#中,我是否应该在每次使用时创建Google.Cloud.Datastore.V1.DatastoreDb的新实例,或者我可以保留一个全局实例作为一个单实例 这是在linux上的c#.net core 3中,带有程序集Google.Cloud.Datastore.V1,版本=2.1.0.0 使用Google.Cloud.Datastore.V1; void DoStuff() { var db=DatastoreDb.Create(“我的项目”) db.插入(实体); } vs

我想知道,在c#中,我是否应该在每次使用时创建
Google.Cloud.Datastore.V1.DatastoreDb
的新实例,或者我可以保留一个全局实例作为一个单实例

这是在linux上的c#.net core 3中,带有
程序集Google.Cloud.Datastore.V1,版本=2.1.0.0

使用Google.Cloud.Datastore.V1;
void DoStuff()
{
var db=DatastoreDb.Create(“我的项目”)
db.插入(实体);
}
vs

使用Google.Cloud.Datastore.V1;
静态数据库=DatastoreDb.Create(“我的项目”)
void DoStuff()
{
db.插入(实体);
}
您可以使用“com.google.cloud.datastore”,这是一个使用v1库的包装器。
根据这个答案,“com.google.cloud.datastore”是线程安全的。

是的,
DatastoreDb
不包含任何本地可变状态,是线程安全的。我们建议您使用它的一个实例,以避免可能打开的网络连接超过所需数量


然而,DataStoreTransation确实包含本地状态,并且不是线程安全的。(例如,它没有线程亲缘关系,但无法防止多个线程试图同时添加突变。)

它是否明确记录在某个线程安全的地方?如果不是,那么你应该假设它不是。但是你也可以走中间路线——拥有一个实例池,这些实例在线程需要时分发给线程,然后重新使用。谢谢,但是链接是针对java的,不确定它是否与c相关#