public static ObjectId Create()
{
var c = Interlocked.Increment(ref counter);
var bytes = new byte[12];
Array.Copy(
BitConverter.GetBytes(
Convert.ToInt32(
DateTime.Now.ToUniversalTime().TimeOfDay.TotalMilliseconds)), 0, bytes, 0, 4);
Array.Copy(machineid, 0, bytes, 4, 3);
Array.Copy(procid, 0, bytes, 7, 2);
Array.Copy(BitConverter.GetBytes(c), 0, bytes, 9, 3);
return new ObjectId(bytes);
}