相关疑难解决方法(0)

如何在C#中生成UUID

我正在以编程方式创建.idl文件.如何以编程方式为接口和方法创建UUID.

我可以通过编程方式生成UUID吗?

.net c# com uuid visual-studio-2008

121
推荐指数
2
解决办法
13万
查看次数

增加C#中的Guid

我有一个具有guid变量的应用程序,该变量需要是唯一的(当然).我知道统计上任何guid应该被认为是唯一的,但由于开发/测试环境的原因,可以多次看到相同的值.所以当发生这种情况时,我想"增加"Guid的值,而不是仅仅创建一个全新的值.似乎没有一种简单的方法可以做到这一点.我找到了一个黑客,我将作为一个可能的答案发布,但想要一个更清洁的解决方案.

c# guid increment

9
推荐指数
2
解决办法
3968
查看次数

使Guid属性线程安全

我的一个类有一个Guid类型的属性.此属性可以由多个线程同时读取和写入.我的印象是对Guid的读写不是原子的,因此我应该锁定它们.

我选择这样做:

public Guid TestKey
{
    get
    {
        lock (_testKeyLock)
        {
            return _testKey;
        }
    }

    set
    {
        lock (_testKeyLock)
        {
            _testKey = value;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

(在我的课程中,对Guid的所有访问也是通过该属性完成的,而不是直接访问_testKey.)

我有两个问题:

(1)是否真的有必要像这样锁定Guid以防止撕裂读数?(我很确定它是.)

(2)这是一种合理的锁定方式吗?或者我需要像下面这样做:

get
{
    Guid result;

    lock (_testKeyLock)
    {
        result = _testKey;
    }

    return result;
}
Run Code Online (Sandbox Code Playgroud)

[编辑]本文确认Guids将遭受撕裂的读取:http://msdn.microsoft.com/en-us/magazine/jj863136.aspx

c# multithreading

5
推荐指数
2
解决办法
896
查看次数

标签 统计

c# ×3

.net ×1

com ×1

guid ×1

increment ×1

multithreading ×1

uuid ×1

visual-studio-2008 ×1