在.NET框架中,我知道可以为线程分配以下任何一个优先级值:
Highest
AboveNormal
Normal
BelowNormal
Lowest
但是,如果2个线程具有相同的优先级,我希望它们以类似的顺序开始 1,2,3,...,N。数字越大,启动顺序越低。
有什么建议吗? 例如:
new Thread(() => OrderFactory.Match(GetOrders()[1]), order: 3).Start();
new Thread(() => OrderFactory.Match(GetOrders()[2]), order: 2).Start(); => start second
new Thread(() => OrderFactory.Match(GetOrders()[3]), order: 4).Start();
new Thread(() => OrderFactory.Match(GetOrders()[4]), order: 5).Start();
new Thread(() => OrderFactory.Match(GetOrders()[5]), order: 1).Start(); => start first
我知道那里有很多话题,但不知怎的,我找不到合适的话题......
答案 0 :(得分:2)
AFAIK没有机制可以控制Thread
的启动,但值得问你为什么要这样做,
我希望他们以1,2,3 ...... n的顺序开始。数字越多,启动顺序越低
因为当您不关心按特定顺序发生的事情时使用Thread
。
您是否希望特定部分同步?
在分配优先级后,当Windows执行特定线程时,它不能保证,Windows只会决定序列。
如果你真的想要,那1在2之前开始,然后按顺序Start
并且稍微暂停b / w线程开始或让线程1开始线程2 .......