Я использую TPL, но нахожу хитрым код модульного тестирования, который его использует.
Я пытаюсь не вводить оболочку поверх него, как я чувствуюможет вызвать проблемы.
Я понимаю, что вы можете установить привязку процессора в TPL, но было бы неплохо установить максимум потока (вероятно, для домена приложения).Следовательно, при установке максимального значения потока в 1 TPL будет вынужден использовать любой поток, в котором он использовался.
Что вы думаете?Возможно ли это (я уверен, что это не так), и должно это возможно?
Редактировать: вот пример
public class Foo
{
public Foo( )
{
Task.Factory.StartNew( () => somethingLong( ) )
.ContinueWith( a => Bar = 1 ) ;
}
}
[Test] public void Foo_should_set_Bar_to_1( )
{
Assert.Equal(1, new Foo( ).Bar ) ;
}
Тест , вероятно, не пройдет, если я не введу задержку.Я хотел бы иметь что-то вроде Task.MaximumThreads=1
, чтобы TPL запускался последовательно.