У меня есть вычислительно интенсивная задача, которую пользователи могут выполнять с помощью приложения Silverlight. Это очень простая задача для распараллеливания.Silverlight: Как получить ProcessorCount?
Моя проблема заключается в том, что System.Environment.ProcessorCount является критическим для безопасности, поэтому я не могу это легко проверить.
Я не хочу просто QueueUserWorkItem, потому что я не хочу иметь больше, чем количество исполняемых процессоров - это не поможет.
Один из способов описаны здесь: http://www.codeproject.com/KB/silverlight/multicore.aspx
Но это немного хака, и это было бы немного работы, чтобы сделать его достаточно надежным для 4 или 8 нитей систем.
Что такое «правильный» способ решить эту проблему? Или Silverlight просто вам не повезло?
Будет ли много вреда, просто кодируя его для работы на 4 ядрах? Накладные расходы на одну базовую систему не будут такими уж плохими в моем опыте. – Chris
Я попробую сравнить его и посмотреть, как сильно это повредит. Каждая задача имеет 1 или 2 МБ данных, и, таким образом, если я запускаю больше потоков, я думаю, что у меня будут проблемы с кешем в дополнение к перераспределению. – MichaelGG