Я полагаю, что проблема заключается в том, что метод thread.start_new_thread
ожидает ссылку на метод, а не вызов метода, т.е. test.Test().jazda
является ссылкой на метод, т.е. однако test.Test().jazda()
вернет результат метода (в данном случае 0), а не вызываемый. Ваш метод запуска должен выглядеть следующим образом thread.start_new_thread(test.Test().jazda, ())
Я оставил комментарий, спрашивающий о версии MSMQ, который Вы используете, поскольку я думаю, что это - причина Вашей проблемы. Транзакционный Получают, не был реализован в более ранних версиях MSMQ. Если это так, затем это сообщение в блоге объясняет Ваши опции.
Используя TransactionScope должен работать, если MSDTC работает на обеих машинах.
MessageQueue queue = new MessageQueue("myqueue");
using (TransactionScope tx = new TransactionScope()) {
Message message = queue.Receive(MessageQueueTransactionType.Automatic);
tx.Complete();
}
Я с тех пор переключился на Сервисного Брокера SQL. Это поддерживает удаленный транзакционный, получают, тогда как MSMQ 3.0 не делает. И, как добавленная премия, это уже использует экземпляр SQL Server, который мы кластеризируем и создаем резервную копию.
Для использования Области транзакций, необходимо прежде проверить, что MSDTC установлен, и удаленное соединение клиента было активировано.
Установка MSDTC не является проблемой, но активируйтесь, удаленное соединение клиента должно вызвать перезагрузку сервера (на Windows Server 2003 дело обстоит так).
возможно, это сообщение может помочь Вам: Как активировать MSDTC и удаленное соединение клиента