2012-01-19 16 views
5

Tôi biết rằng bạn có thể bang đi tại GUID thế hệ trên máy duy nhất và nhiều và đó là thống kê không bao giờ tạo ra cùng một GUID hai lần.GUID được tạo trên các thiết bị Windows CE sử dụng .NET Compact Framework 3.5 vẫn còn độc đáo về mặt thống kê?

Có rất nhiều thông tin trên internet chứng minh điều này.

Có thể nói tương tự 100 của Windows CE 4, 5 & 6 thiết bị đang chạy các ứng dụng dựa trên GUIDs .NET Compact Framework 3.5?

Tôi giả sử có nhưng không thể tìm thấy bất kỳ thông tin nào chứng minh rằng Hệ điều hành WinCE sử dụng các số ngẫu nhiên và chúng phù hợp ngẫu nhiên.

Ai có thể cung cấp thông tin và tài liệu tham khảo đó không?

Cảm ơn,

J.

+1

Câu hỏi di động vĩnh viễn của Stackoverflow. –

+0

Trên một nút bên: không có điều như một số ngẫu nhiên :-) – Matten

+0

Ah có, nhưng lần này nó trên Windows CE !! Vì vậy, đó là một câu hỏi hoàn toàn khác ...;) – RoboJ1M

Trả lời

6

Từ một early article trên Guid cho .NET Compact Framework

Đội .NET Compact Framework không ngừng làm cân bằng giữa khuôn khổ kích thước dấu chân, hiệu suất và thời gian triển khai. Phương thức .NET Framework Guid.NewGuid đầy đủ gọi hàm Windows API CoCreateGuid gọi UuidCreate để tạo ra số 1282 bittoàn cầu duy nhất trên toàn cầu. Rất tiếc, các chức năng này không được hỗ trợ trên máy tính bỏ túi , vì vậy phương pháp Guid.NewGuid không được triển khai cho .NET Compact Framework.

Bài viết này đề xuất một thuật toán mà bằng các cửa sổ phiên bản

Nó chỉ ra rằng thật dễ dàng để viết một thực hiện tùy chỉnh của phương pháp Guid.NewGuid. Sau đây cho thấy một ứng dụng thử nghiệm mà tạo GUID trên Pocket PC. Nó sử dụng một lớp tùy chỉnh được gọi là PocketGuid, sử dụng cùng một thuật toán như GUID trên máy tính để bàn và được thảo luận chi tiết hơn sau trong bài viết này.

Vì 2.0 khung thực tế nhỏ gọn chứa phương pháp Guid.NewGuid, tôi cho rằng chúng bao gồm mã được đề cập dẫn đến cùng độ mạnh/tính duy nhất của Hướng dẫn trên WinCE.

+0

Tôi nghĩ giải pháp tốt nhất của tôi là chỉ cần nói rằng phương pháp .NET 2.0 CF để tạo GUID sử dụng cùng một phương pháp trong ví dụ PocketGuid. – RoboJ1M

+0

Mặc dù tôi đã phải tranh luận rằng phương pháp lấy một phương thức ngẫu nhiên trong PocketGuid là _random enough_ ("Nhưng nếu hai thiết bị cầm tay được khởi động cùng một lúc thì sao? Nó sẽ tạo ra cùng một số!") – RoboJ1M

+0

Như đã nêu trong bài viết, chức năng này không chỉ sử dụng dấu thời gian mà còn một số thông tin liên quan đến phần cứng khác. Vì vậy, nó không nên tạo ra các tín hiệu va chạm khi hai thiết bị được khởi động cùng một lúc, hy vọng :) – Matten

Các vấn đề liên quan