Я использую автоматическую глобализацию на веб-сайте ASP MVC. Он отлично работает, пока он не достиг параллельного блока:Как правильно наследовать культуру потоков в параллельном блоке?
public ActionResult Index()
{
// Thread.CurrentThread.CurrentCulture is automatically set to "fr-FR"
// according to the requested "Accept-Language" header
Parallel.Foreach(ids, id => {
// Not every thread in this block has the correct culture.
// Some of them still have the default culture "en-GB"
}) ;
return View()
}
Каков наилучший способ сделать параллельный блок наследует культуру? помимо этого решения:
public ActionResult Index()
{
var currentCulture = Thread.CurrentThread.CurrentCulture ;
Parallel.Foreach(ids, id => {
// I don't know if it's threadsafe or not.
Thread.CurrentThread.CurrentCulture = currentCulture ;
}) ;
return View()
}
Возможно, один из них имеет культуру запроса из-за задача вложения. Остальные должны следить за поведением пула потоков, что бы это ни было (я так и не узнал). – usr