将Thread.CurrentThread.ManagedThreadId
返回多处理器计算机上的唯一ID。
说明:我想生成唯一编号。我根据当前时间生成了唯一的号码,即
currentTmeinmillisecons但是两个线程在相同的时间戳中访问相同的函数,所以我想在该时间戳中添加唯一的东西。因此,计划在CurrentTimeInMilliseconds中添加Thread.CurrentThread.ManagedThreadId
。
所以我可以在CurrentTimeInMilliseconds中添加Thread.CurrentThread.ManagedThreadId。
答案 0 :(得分:3)
“CurrentTimeInMilliseconds中添加Thread.CurrentThread.ManagedThreadId”并不清楚你的意思。比方说,对于ManagedThreadId + CurrentTimeInMilliseconds:
1+2 = 3
2+1 = 3
那么你实际上是在创造一个“独特”的价值吗?如果每毫秒调用一次以上会发生什么?如果你需要每个进程每个进程都是唯一的东西,我会做类似的事情:
using System.Threading;
static class Foo
{
static long i;
public static long GetUnique() { return Interlocked.Increment(ref i); }
}
如果您想在多个流程中生成唯一编号,Guid
即可。