多线程速度变慢,该怎么处理

多线程速度变慢
比如一个无限循环
Dim 次数 As Integer = 0
Dim Start_T = GetTickCount
Do While True
            次数 += 1
            Threading.Thread.Sleep(100)
            ‘’dm.KeyPress(122)
            ‘’dm.KeyPress(112)
           ‘’中间所做的事
            If 次数 = 50 Then
                Dim Stop_T = GetTickCount
                Console.WriteLine("运行50次所用时间(毫秒):{0}", Stop_T - Start_T)
                次数 = 0
                Start_T = GetTickCount
            End If
Loop

放到一个class类中用多线程调用,如果是第一次调用循环50次用时10秒,第二次相近,当调用5次以上时,明显变慢,大约用时22秒左右,用线程池也一样,如何调用多次时效率不下降太多呢?什么方法调用都行,我需要同时运行多个上面的的循环。
------解决方案--------------------
循环 50 次怎么会是 10 秒呢,你中间的处理到底有多慢,10秒 22 秒,差距太大,50次差个几毫秒是有可能的,差10秒,绝对是你代码的问题
------解决方案--------------------
关键多个 dm.KeyPress 是否有冲突。
如果它的多个实例之间会发生锁定、等待之类,那么肯定没有单个实例顺序调用的快。