首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在.NET中,是否有一个属性可以将类或方法标记为线程安全?

在.NET中,是否有一个属性可以将类或方法标记为线程安全?
EN

Stack Overflow用户
提问于 2009-03-18 12:58:55
回答 6查看 3.5K关注 0票数 8

在.NET中,我如何知道一个类或方法是否是线程安全的?默认情况下它不是线程安全的吗?

EN

回答 6

Stack Overflow用户

发布于 2009-03-18 13:09:28

这不是这个属性:您必须阅读您感兴趣的每个项目的文档。你不能仅仅通过给它添加一个属性来使它成为线程安全的。这就好比拿起一个桔子,贴上一张贴纸,上面写着“苹果”。

当然,同样的事情也适用于序列化,它并没有停止它们,但仍然:没有属性。阅读文档。

票数 6
EN

Stack Overflow用户

发布于 2013-04-09 22:13:42

不,这是毫无意义的。

假设我有一个线程安全列表,它有三个线程安全™方法:

代码语言:javascript
复制
void Add( something);
void Remove(index);
int GetCount();
something GetElementAt(index);

线程一:

代码语言:javascript
复制
for 1 to 100 do
 list.Add(12);

Thread two和three

代码语言:javascript
复制
while( list.GetCount() >0)
{
    list.Remove(0);
}

上面的代码迟早会崩溃,因为在调用GetCountRemove之间,列表可能会发生变化

票数 2
EN

Stack Overflow用户

发布于 2009-03-18 13:11:13

在这一点上,我得到了Joel Coehoorn的支持,很容易‘伪造’这样的说法。

为什么不在函数描述中添加threadsafe文本

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/658167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档