Должен ли я блокировать свой машинный адаптер при отправке пакета, если я использую несколько потоков?

Я использую Pcap.Net для передачи пакета через адаптер моей машины, в некоторых случаях я читаю пакеты из нескольких файлов одновременно, используя Parallel.ForEach со свойством MaxDegreeOfParallelism, которое можно изменить. Поэтому мне интересно, нужно ли мне заблокировать объект, который отправил этот пакет.

Вот как моя основная отправка пакетов:

// Open the my device
using (PacketCommunicator communicator = selectedDevice.Open(100, PacketDeviceOpenAttributes.Promiscuous, 1000))                                                        
{
    Packet packet;

    // Read packet from file
    while (inputCommunicator.ReceivePacket(out packet) == PacketCommunicatorReceiveResult.Ok)
    {
       // Send packet
       communicator.SendPacket(packet);
    }
}

person dina ere    schedule 03.02.2015    source источник


Ответы (1)


Из того, что я понимаю о WinPcap, я считаю, что если вы не используете один и тот же PacketCommunicator в двух потоках параллельно, все будет в порядке.

person brickner    schedule 06.02.2015