I have the following class
class Program
{
static Random _Random = new Random();
static void Main(string[] args)
{
...
for (int i = 0;
Your example code only shows one use of _Random per thread. Assuming this is the case, you could also generate the random number in the main for loop and pass the random number into each thread as a parameter.
for (int i = 0; i < no_threads; ++i)
{
var thread = new Thread(new ThreadStart(Send));
thread.Start(_Random.Next(999999));
}
and then modify your thread function to accept the parameter:
static void Send(int device_id)
{
...
//int device_id = _Random.Next(999999);
...
}