Здравствуйте,
Помогите разобраться с многопоточностью не самому профессиональному программисту.
Есть внешний источник посылающий данные в формате string name/string line. Нужно принимать и обрабатывать эти данные с максимально возможным быстродействием.
Попытка применить что-то вроде
switch (name)
{
case "a":
Thread tA = new Thread(GetA);
tA.Start(line);
break;
case "b":
Thread tB = new Thread(GetB);
tB.Start(line);
break;
}
с последующей обработкой в Get... работает неадекватно.
Посоветуйте, пожалуйста, в какую сторону нужно смотреть.
Это глобальный, можно сказать вопрос.
Но в процессе моих войн с многопоточностью образовался и еще один, маленький.
Можно ли исправить такой вот код
static void Main(string[] args)
{
for (int i = 1; i<=10; i++)
{
string line = i.ToString();
Thread t = new Thread(Go);
t.Start(line);
t.Join();
}
Console.ReadLine();
}
static void Go(object o)
{
Thread.Sleep(5000);
Console.WriteLine((string)o);
}
чтобы он напечатал цифры в правильной последовательности меньше, чем за 5*10 секунд?
Заранее спасибо.