Ibm mq IBM MQ:我必须在多线程上下文中锁定ISession对象吗?

Ibm mq IBM MQ:我必须在多线程上下文中锁定ISession对象吗?,ibm-mq,message-queue,xms,Ibm Mq,Message Queue,Xms,在文档中,我看到以下句子: 一次只能在单个线程上使用会话对象。 () 这是否意味着,如果我的应用程序是多线程的,并且如果我的ISession对象可供多个线程访问,那么每当我使用ISession对象时,我必须锁定它们,以便同步访问这些对象 我在发送消息时使用ISession对象(这里我处于多线程上下文中,所以我应该在这里锁定ISession对象吗?) 示例代码: var textMessage = _session.CreateTextMessage(message); producer.Send

在文档中,我看到以下句子:

一次只能在单个线程上使用会话对象。 ()

这是否意味着,如果我的应用程序是多线程的,并且如果我的
ISession
对象可供多个线程访问,那么每当我使用
ISession
对象时,我必须锁定它们,以便同步访问这些对象

我在发送消息时使用
ISession
对象(这里我处于多线程上下文中,所以我应该在这里锁定ISession对象吗?)

示例代码:

var textMessage = _session.CreateTextMessage(message);
producer.Send(textMessage);

您总是可以在不同的线程中创建新的会话对象我不想在需要发送消息时创建会话对象。这些会话是在appinit期间创建的,我会重复使用它们。这是因为创建连接和会话对象需要花费时间,因此必须同步会话对象,而锁定是一种方法