2014-12-05 3 views
1

У меня есть класс под названием MCWrapper, из которого я хочу вызвать статическую функцию-член как поток, чтобы принимать данные из сокета. Я смог создать экземпляр управляемого класса в своем консольном приложении и передать его данные, но теперь я надеюсь очистить вещи и как можно больше увеличить DLL, которую я создаю.C++/CLI Threading со статическими функциями-членами

Таким образом, MCWrapper имеет функцию-член getMessageThread типа static void. Как передать ссылку на экземпляр управляемого класса и запустить его как поток с помощью методов System :: Threading? Из того, что я понимаю, это то, что мне нужно сделать, чтобы он мог получить доступ к другим нестатическим функциям-членам MCWrapper (который по существу является большим классом хранения). Я играю в течение дня и продолжаю застревать.

В консольном приложении я создаю управляемый класс следующим образом:

MCWrapper ^mc = gcnew MCWrapper(); 

Спасибо !!

ответ

1

Как обычно, когда я задаю вопрос, я сразу же нахожу ответ. Возможно, это поможет кому-то.

Создать ссылку на объект, который вы хотите:

MCWrapper^ mc = gcnew MCWrapper; 

Начать поток, который вызывает функцию-член, как она начинается.

Thread^ rThread = gcnew Thread(gcnew ThreadStart(mc, MCWrapper::receiveMessageThread)); 

Затем запустите нить.

rThread->Start(); 

Довольно легко, как только вы это знаете. Пожалуйста, дайте мне знать, если у кого-то есть лучший способ сделать это.

Cheers,

+0

_Как обычно, когда я задаю вопрос, я сразу же нахожу ответ. Я знаю это чувство :-) – t3chb0t