diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 71f9a5e21..7aa2895e1 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -12,7 +12,6 @@ Imports Microsoft.Reporting.WebForms Imports Newtonsoft.Json Imports Newtonsoft.Json.Linq - 'NOTA AD TEAM 'COLOR PARA ROW TOTAL EN REPORT VIEWER: #67809F (AZULITO) @@ -46,8 +45,7 @@ Public Class ClsPaginas End Property #Region "Propiedades" - Private Shared ReadOnly Property Rand As New Random() - + Private Shared ReadOnly Property Rand As New ThreadSafeRandom() Private Property SubReportData As Modelos.MSubReportData Get Return If(IsNothing(ViewState("SubReportData")), Nothing, DirectCast(ViewState("SubReportData"), Modelos.MSubReportData)) diff --git a/App_Code/ThreadSafeRandom.vb b/App_Code/ThreadSafeRandom.vb new file mode 100644 index 000000000..825913ccb --- /dev/null +++ b/App_Code/ThreadSafeRandom.vb @@ -0,0 +1,15 @@ +Imports System.Threading + +NotInheritable Class ThreadSafeRandom + Private Shared ReadOnly GlobalRandom As New Random() + Private Shared ReadOnly LocalRandom As New ThreadLocal(Of Random)(Function() + + SyncLock GlobalRandom + Return New Random(GlobalRandom.Next()) + End SyncLock + End Function) + + Function [Next](Optional min As Integer = 0, Optional max As Integer = Integer.MaxValue) As Integer + Return LocalRandom.Value.Next(min, max) + End Function +End Class \ No newline at end of file