EDIT câu trả lời đầu tiên của tôi là không chính xác. Đang thử lại ...
Về mặt kỹ thuật, như @Curt chỉ ra, biến số Shared
được chia sẻ trên các phiên bản của lớp.
Tuy nhiên, với mã như vậy, ít có khả năng giá trị sẽ được chia sẻ giữa những người dùng vì nó được đặt thành bản sao cục bộ của giá trị trong phiên của họ trong Page_Init
. Có một "điều kiện chủng tộc" có thể có sau khi biến được chia sẻ UserNumber
đã được khởi tạo trong Page_Init
và người dùng khác gửi yêu cầu cập nhật giá trị của biến đó từ phiên của họ, người dùng đầu tiên sẽ thấy người dùng thứ hai giá trị. tức là người dùng có thể thấy các giá trị của người dùng khác cho các yêu cầu đồng thời.
Thay vào đó, tôi khuyên bạn nên sử dụng một ReadOnly
tài sản không chia sẻ để nhận được giá trị từ phiên một lần:
Private mUserNumber As String
Public ReadOnly Property UserNumber As String
Get
If String.IsNullOrEmpty(mUserNumber) Then
mUserNumber = Session("UserNumber")
End If
Return mUserNumber
End Get
End Property
này sử dụng một mô hình gọi là "Lazy nạp", mà tôi sử dụng trong thuộc tính read-only rất nhiều trên các trang để cải thiện hiệu suất và khả năng đọc mã.
Có; dưới dạng biến 'Được chia sẻ', nó có thể truy cập được đối với tất cả các phiên bản ... do đó, tất cả người dùng của ứng dụng chạy trên cùng một quy trình. –