2015-02-26 5 views
1

Я знаю на C++ с IOCP, когда вы выдаете несколько асинхронных чтений/записи в сокете, даже порядок их выполнения на порту завершения в порядке, поскольку планирование рабочих потоков/обработки может забрать для обработки их из строя (для например, первое чтение/запись сначала и 1-е после). Это случай с C# и Send/ReceiveAsync? Я не могу найти информацию об msdn об этом.Send/ReceiveAsync: гарантирован порядок звонков?

Спасибо.

+0

Это звучит как проблема XY. Как правило, лучший способ - это иметь только одну запись в одно и то же время. – usr

ответ

2

Да. Представьте два потока .NET, выполняющих два обратных вызова завершения. ОС теперь может приостановить любую из них до первой инструкции на любое количество времени. Только для этого явления вы можете никогда полагаться на порядок обратного вызова для параллельных IO.

Если вы хотите заказать, вам необходимо выполнить обработку самостоятельно.