Во-первых, я бы использовал одновременную коллекцию ConcurrentBag
в этом случае (если вы пишете в коллекцию). Параллельные коллекции блокируют экземпляр, когда несколько потоков собираются получить к нему доступ. Также я бы предложил использовать Task.WhenAll
с ключевым словом await
. Task.WaitAll
может создать тупик. Вот пример, который вы можете попробовать:
public static async Task Main()
{
var symbolList = new ConcurrentBag<string> { "AAPL", "QQQ", "FB", "MSFT", "IBM" };
var taskArray = new List<Task>();
foreach (var s in symbolList)
{
var task = Task.Run(() =>
{
Process(s);
});
taskArray.Add(task);
}
await Task.WhenAll(taskArray);
}
К сожалению, PHP больше похож на ASP в том смысле, что "приложение" является свободным понятием, файлы плотно не связаны, таким образом, что-либо, что Вы делаете, должно было бы, вероятно, быть на уровне веб-сервера
Принятие Вас находится на сервере Linux/апача. Один подход должен был бы использовать .htaccess, они могут быть изменены в каталоге (т.е. прикладной уровень) и иметь, разъединяют мощные функции.
Один пример для перезаписи URL:
http://roshanbh.com.np/2008/02/hide-php-url-rewriting-htaccess.html
Официальные документы Apache: http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html
Можно посмотреть ModSecurity для Apache: http://www.modsecurity.org/
Это позволит Вам регистрировать полный POST и данные заголовков в зависимости от правил, которые Вы определяете. Конфигурация ModSecurity очень мощна, но очень сложна также.
Вход трафика HTTP
Веб-серверы обычно хорошо укомплектованы, чтобы зарегистрировать торговлю формой, полезной для маркетинга исследований, но спасовать, регистрируя трафик перед веб-приложениями. В частности, большинство не способно к входу тел запроса. Ваши противники знают это, и именно поэтому большинство нападений теперь совершено по почте запросы, представив Ваши слепые системы. ModSecurity делает полную регистрацию транзакций HTTP возможными, позволяющими полными запросами и ответами, которые будут зарегистрированы. Его средства входа также позволяют мелкомодульным решениям быть сделанными о точно, что зарегистрировано и когда, гарантируя только соответствующие данные зарегистрирован. Поскольку часть запроса и/или ответа может содержать уязвимые данные в определенных полях, ModSecurity может быть настроен для маскирования этих полей, прежде чем они будут записаны в контрольный журнал.