Синхронизированное выполнение потока в C#C#

Место общения программистов C#
Ответить
Anonymous
 Синхронизированное выполнение потока в C#

Сообщение Anonymous »

Я создаю новые потоки и передаю тип параметра Affectedinput. Если я не использую задержку после создания потока, я вижу, что операторы выводятся на консоль случайным образом в функции потока. Это меня смущает. Я хочу убедиться, что каждый поток выполняется независимо, используя задержку без смешивания данных, отправляемых в поток. Достаточно ли следующий код для производственной версии?
public class Affectedinput
{
public string input { get; set; }
public int delay { get; set; }
}
public static List affectedinputs { get; set; }
static void Main(string[] args)
{
affectedinputs = new List();
Random rng = new Random();

for (int i = 0; i < 10; i++)
{
int rand1 = rng.Next(10);
Affectedinput input = new Affectedinput();
input.input = "HI" + (i + 1).ToString();
input.delay = rand1;
affectedinputs.Add(input);
string datee = String.Format("{0}, delay {1}", input.input, input.delay);
Console.WriteLine(datee);
Console.WriteLine("\n");
}
DateTime aDate1 = DateTime.Now;
Console.WriteLine(aDate1.ToString("dddd, dd MMMM yyyy HH:mm:ss"));

foreach (var item1 in affectedinputs)
{
new Thread(() => DoChangeInput(item1)).Start();
//Thread.Sleep(100);
}
}

private static void DoChangeInput(object parameterObj)
{
var parameter = (Affectedinput)parameterObj;
Thread.Sleep(parameter.delay * 1000);
//Write data to actual device
Console.WriteLine(parameter.input);
DateTime aDate = DateTime.Now;
Console.WriteLine(aDate.ToString("dddd, dd MMMM yyyy HH:mm:ss"));
Console.WriteLine("\n");
}


Подробнее здесь: https://stackoverflow.com/questions/786 ... in-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»