У меня есть группа веб-сервисов, которые попадают 2 000 000 раз в день; 7 веб-сервисов. Каждая служба в настоящее время переносит входящее XML-сообщение на диск (это большой диск).Webservice - Threading vs Асинхронный вызов метода
Падение файла происходит в начале запроса, и я хочу открутить это на новый поток, чтобы не потерять 20 мс, необходимых для записи файла. Да, эти 20 мс важнее, чем вы думаете.
Я использую .NET 2.0 и подумал о двух способах этого: асинхронный метод вызова метода DropMessage() или запуск нового потока и его вызов.
private void DumpMessage()// this method dumps the incoming message to File.
DumpMessages управляет собственным делом. Если он терпит неудачу, он знает, что делать и как связаться с моей командой.
public delegate void AsyncDumpMessage();
AsyncDumpMessage caller = new AsyncDumpMessage(DumpMessage);
IAsyncResult result = caller.BeginInvoke(null, null);
против
System.Threading.Thread t = new System.Threading.Thread(DumpMessage);
t.Start();
Существуют ли какие-либо оговорки к выше двух? Я склоняюсь к асинхронному методу, так как я получил более высокую производительность из-за его тестирования
Любые другие идеи для лучшего способа сделать это? Для меня важны производительность и стабильность.
Почему вы используете .NET 2.0 в отличие от 4.0, который имеет больше возможностей для управления потоками (в виде TPL) или .NET 4.5 (что добавляет еще больше опций для асинхронности)? –
Добро пожаловать в программное обеспечение для предприятий ... Вам не нужно говорить мне, что у 4.0/4.5 есть лучшие варианты управления потоками;) –