Я не знаю, имеет ли название смысл, но в приложении, которое я пишу, есть много (расширенных) методов. Простой пример:
Предметы:
Matter (Burn, Explode, Destroy, Freeze, Heat, Cool)
Atom (Attach, Detach)
<many more>
И пользовательская коллекция, как:
ImmutableList<T>
И методы, подобные этим:
public static class Burner
{
public static Matter Burn ( this Matter matter )
{
// matter is burning ...
}
}
var matters = new ImmutableList<Matter>();
matters.Burn();
Как видите, Burn работает с одной сущностью, но все еще отображается в ImmutableList. Таким образом, я хочу сам управлять параллелизацией (записывать параллельно).
Как мне сделать это наиболее эффективным способом, или самым чистым, или наиболее приемлемым способом, или в сочетании?
Во-первых, я бы предпочел не определять другой метод расширения, который принимает ImmutableList внутри каждого класса (Burner и т. Д.), Потому что их сотни на сотни, и они, вероятно, будут выглядеть одинаково. Но я открыт для идей.
Также весь код мой, поэтому я могу изменить / добавить что угодно в любой части кода, не только в методах расширения.