File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -15,6 +15,7 @@ public class UdpTimedSender : IDisposable
1515 private readonly UdpClient _udpClient ;
1616 private Timer ? _timer ;
1717 private ushort _counter = 0 ;
18+ private readonly Random _random = new Random ( ) ; // Створюємо один раз як поле класу
1819
1920 public UdpTimedSender ( string host , int port , ILogger logger )
2021 {
@@ -28,17 +29,15 @@ public void StartSending(int intervalMilliseconds)
2829 {
2930 if ( _timer != null )
3031 throw new InvalidOperationException ( "Sender is already running." ) ;
31-
3232 _timer = new Timer ( SendMessageCallback , null , 0 , intervalMilliseconds ) ;
3333 }
3434
3535 private void SendMessageCallback ( object ? state )
3636 {
3737 try
3838 {
39- Random rnd = new Random ( ) ;
4039 byte [ ] samples = new byte [ 1024 ] ;
41- rnd . NextBytes ( samples ) ;
40+ _random . NextBytes ( samples ) ; // Використовуємо поле класу замість локальної змінної
4241 _counter ++ ;
4342
4443 byte [ ] msg = ( new byte [ ] { 0x04 , 0x84 } )
@@ -47,7 +46,6 @@ private void SendMessageCallback(object? state)
4746 . ToArray ( ) ;
4847
4948 var endpoint = new IPEndPoint ( IPAddress . Parse ( _host ) , _port ) ;
50-
5149 _udpClient . Send ( msg , msg . Length , endpoint ) ;
5250 _logger . Log ( $ "Message sent to { _host } :{ _port } ") ;
5351 }
You can’t perform that action at this time.
0 commit comments