Re: SharePoint SPThreadPool
От: /Forester/ Россия http://www.akteam.ru
Дата: 10.09.14 20:40
Оценка:
Здравствуйте, -n1l-, Вы писали:

N>Здравствуйте, те кто работал, работает с SP, знаете ли вы о том, как работает данный класс? (SP2010)

N>Аналогичен ли он описанному у рихтера ThreadPool'у?

Класс не использовал, посмотрел декомпилером.

SPThreadPool — это два вспомогательных метода (QueueUserWorkItemWithImpersonation(WaitCallback callback, object state) и QueueUserWorkItemWithUserToken(WaitCallback callback, object state, SPUserToken token)), которые внутри дергают все тот же ThreadPool.QueueUserWorkItem. Задача обоих методов — обеспечить выполнение callback'а под учеткой определенного пользователя. Для этого перед тем как дернуть callback выполняется либо SPSecurity.RunAsUser, либо Identity.Impersonate, либо callback дергается под дефолтной учеткой потока.

Есть там еще парочка internal методов (RunAsyncWorkItemWithImpersonation и RunAsyncWorkItemWithUserToken). Они сводятся к вызову BeginInvoke того же промежуточного метода, что и для QueueUserWorkItem*, который прежде чем дернуть callback выполняет настройку учетной записи потока.

Так что SPThreadPool — это всего лишь helper'ы, настраивающие контекст выполнения задачи.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.