在过去的30分钟里我一直在讨论这个问题,尝试编写一个简单的foreach
循环,无论我做什么都会抛出一些错误(第一次不使用线程框架,所以我很可能会犯一些愚蠢的语法错误)
可悲的是,我不能使用qazxsw poi因为必须留下.net 3.5或以下...有人能告诉我正确的方法这样做,所以我可以回去不想尖叫!
伪代码
Parallel.For
编辑:MonoDevelop正在抛出以下错误
首先,对于像这样的东西,你应该使用一个完整线程的较轻重量的ThreadPool intead。 (你也犯了一些转换错误,线程池版本使用与Thread相同的样式,所以你可以看到差异)
void SomeMethod
{
foreach(Touch Input in Inputlist){
Thread thread = new Thread(new ThreadStart(this.FilterInput(Input)));
thread.Start();
}
}
void FilterInput(Input UnFilteredInput){
....
}
但是我仍然担心每秒创建太多线程并且会建议某种阻塞来计算新线程的创建速率。
void SomeMethod
{
foreach(Touch input in Inputlist){
ThreadPool.QueueUserWorkItem(new WaitCallback(FilterInput), input);
}
}
void FilterInput(object unCastUnFilteredInput){
Touch UnFilteredInput = (Touch)unCastUnFilteredInput;
....
}