Краткий ответ: Нет. Память принадлежит процессу (в общем) или в. NET по крайней мере AppDomain. Процессорное время принадлежит потокам.
Длинные ответы:
a) Существует ThreadLocalStorage , который был создан для хранения информации, относящейся к потоку. В. NET это ThreadLocal<T>
. Но поскольку вы не можете изменять библиотеку, она не будет использоваться.
b) Если вы реализуете собственное управление памятью, вы потенциально можете проверить, для какого потока выделена память. Это кажется возможным , но я бы не рекомендовал это. Это больше подходит для C и C ++, где вы можете легко использовать #define
для new
и malloc()
, чтобы переопределить способ выделения памяти в куче.
c), если ваш library - это собственная библиотека (или оболочка для собственной библиотеки), также b) бесполезна, поскольку распределение памяти будет происходить другим способом.