C# Создание отдельного сборщика мусора для каждого потокаC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 C# Создание отдельного сборщика мусора для каждого потока

Сообщение Anonymous »


Я планирую создать приложение для редактирования и секвенирования звука в реальном времени на C#, используя в основном библиотеку cscore для обработки звука на серверной части, а затем Avalonia для внешнего интерфейса (с использованием Avalonia. Разметка.Декларативная, хотя не уверен, что это имеет большое значение). Я ожидаю, что интерфейсная часть будет время от времени требовать очистки GC во время нормальной работы/использования, и хотела бы убедиться, что это не повлияет на серверную часть во время GC - если звуковая часть должна приостанавливаться во время GC, это может при этом будет слышно зависание или запаздывание. Для меня возможно написать код, используя предварительно выделенную память или ручное управление памятью для серверной части, но это невозможно для Avalonia, без изменения почти всей ее внутренней логики и значительного изменения способа взаимодействия с фреймворком по сравнению с официальным. docs (возможно, это невозможно, и точка - я особо этим не занимался).

Есть ли способ создать отдельные кучи/GC для каждого потока, чтобы серверные потоки могли иметь свои собственные отдельные GC, на которые не влияет пользовательский интерфейс, или мне придется создать два отдельных приложения в стиле сервера/клиента и сделать некоторая форма IPC между ними. В качестве альтернативы, есть ли способ пометить внутренний код, который не требует взаимодействия со сборщиком мусора для продолжения работы во время очистки сборщика мусора, если я точно знаю, что это не повлияет. Если да, то как лучше всего это сделать, учитывая потенциально большие объемы произвольных данных, которые мне хотелось бы передавать между ними.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»