C # RabbitMQ Client seguridad de subprocesos

ConnectionFactory factory = new ConnectionFactory {HostName = "localhost"};

using (IConnection connection = factory.CreateConnection())
using (IModel channel = connection.CreateModel())
{
    channel.QueueDeclare("hello", false, false, false, null);
    for (int i = 0; i < 100000; i++)
    {
        MemoryStream stream = new MemoryStream();

        var user = new User 
                       {
                           Id = i
                       };

        Serializer.Serialize(stream, user);


        channel.BasicPublish("", "hello", null, stream.ToArray());

    }

}

Tengo el código de arriba y tengo curiosidad por la seguridad de los hilos.

No estoy seguro, pero me lo imagino.ConnectionFactory es hilo seguro. Pero entonces no estoy seguro siIConnection ¿Es seguro el hilo? ¿Debo crear conexión por solicitud? ¿O más bien una única conexión persistente? Y que hay conIChannel?

Además, ¿debería almacenar la conexión como ThreadLocal? ¿O debería crear una conexión por solicitud?

Respuestas a la pregunta(1)

Su respuesta a la pregunta