Я занимаюсь этим в течение последних 30 минут, пытаясь натолкнуть простой цикл foreach
, который меняет какую-то ошибку, независимо от того, что я делаю (Первый раз, когда я не использую структуру потоков, поэтому я «м, скорее всего, сделать какие-то глупые синтаксическую ошибку)Правильный способ Thread a foreach loop
к сожалению, я не могу использовать Parallel.For
из-за того, чтобы остаться .NET 3.5 или ниже ... может кто-нибудь сказать мне правильный способ сделать это, так что я могу вернуться к не желая кричать !!
Судо код
void SomeMethod
{
foreach(Touch Input in Inputlist){
Thread thread = new Thread(new ThreadStart(this.FilterInput(Input)));
thread.Start();
}
}
void FilterInput(Input UnFilteredInput){
....
}
Редактировать: MonoDevelop бросает следующие ошибки
Выражение обозначает значение, где тип или метод группа ожидаемый
наилучшее перегруженное соответствие метода для System.Threading.T hread.Thread (System.Threading.ThreadStart) имеет некоторые недопустимые аргументы,
Аргумент # 1 не может преобразовать выражение объекта к типу System.Threading.ThreadStart
Попробуйте добавить 'Touch Copy = Input;' строка в верхней части петли и изменения начало нити на 'Thread нить = новый Thread (новый ThreadStart (this.FilterInput (копия)));' –
Все еще выполняются те же 3 ошибки, даже с этим :: '(выражение обозначает значение, в котором ожидался тип или группа методов) (наилучшее соответствие перегруженного метода для System.Threading.Thread.Thread (System.Threading.ThreadStart) некоторые недопустимые аргументы), (3: Аргумент # 1 не может преобразовать выражение объекта в тип System.Threading.ThreadStart). – Burdock
ошибки отбрасывания в сторону, скорее всего, вы создадите слишком много потоков, если не поместите Семафор в цикле или что-то в этом роде. –