Вы можете отправить параметры через фонового работника следующим образом:
int a = rnd.Next(1, 9);
int b = rnd.Next(11, 22);
var data = new Tuple<int, int>(a, b);
bg.RunWorkerAsync(argument: data);
А потом по вашему рабочему методу
void SlowMultiply(object sender, DoWorkEventArgs e)
{
var mydata = (Tuple<int, int>) e.Argument;
int product = mydata.Item1 * mydata.Item2;
for (int i = 1; i <= 5; i++)
{
Thread.Sleep(500);
}
product = prod.ToString(); // update the global variable
}
}
И, альтернативно, вы можете просто вычислить случайные числа внутри вашего рабочего метода.