是否有一种方法可以每次生成一个100%全新的GUID,而不会在整个应用程序中发生冲突?
由于我无法在八小时内回答我的问题,所以我想出了解决方案:
internal static class GuidGenerator
{
private static readonly HashSet<Guid> _guids = new HashSet<Guid>();
internal static Guid GetOne()
{
Guid result;
lock (_guids)
while (!_guids.Add(result = Guid.NewGuid())) ;
return result;
}
internal static void Utilize(Guid guid)
{
lock (_guids)
_guids.Remove(guid);
}
}
这段代码能解决应用程序中的问题吗? 编辑:嗯,情况变得复杂了。线程安全会影响速度。
.NewGuid()
足够了。除非你在谈论跨宇宙唯一标识? - KMån