.Net Как создать собственный поток ThreadPool, общий для всех доменов приложения процесса?
Я сделал собственный ThreadPool, оптимизированный для моих конкретных потребностей. Тем не менее, когда в процессе есть несколько доменов приложений, CLR ThreadPool может быть общим для всех доменов приложений, и я хотел бы иметь возможность воспроизвести это поведение.
Это можно сделать с помощью MarshalByRefObject и Remoting для создания распределенного ThreadPool, но я боюсь, что это добавит нежелательные накладные расходы, поскольку ключевой целью пользовательского пула потоков является производительность.
Другим теоретическим решением было бы взломать границу памяти AppDomain с помощью неуправляемого объекта. Если я'Насколько я понимаю, граница памяти в AppDomain применяется только к управляемым объектам, поэтому в каждом AppDomain может быть одна управляемая оболочка, указывающая на один и тот же неуправляемый объект.
Итак, мои вопросы:
Есть ли способ создать пользовательский пул потоков, используя удаленное взаимодействие с минимальными издержками?Если нет, возможно ли разделить неуправляемый объект через AppDomain?