1
我正在爲mex創建一個用於MATLAB的C++模塊。我在此模塊中啓動一個新的線程,並從中調用MATLAB函數myCallBack函數:如何從另一個線程調用mexCallMATLAB
mxArray *funcName = mxCreateString("myCallback");
mxArray *text - mxCreateString("AAA");
mxArray *call[2] = {funcName, text};
mexCallMATLAB(0, NULL, 2, call, "feval");
...
myCallBack函數功能:
function myCallback(text)
fprintf(1,'%s\n', text);
end
它調用mexCallMATLAB後不顯示任何信息。這些函數在與matlab函數相同的線程中運行良好。什麼是問題?
請參閱下面的答案。它回答了你爲什麼不能在多個線程中使用'mex *'函數的基本問題。但更大的問題是*你爲什麼要嘗試去做。爲什麼?您需要考慮以某種方式重新設計代碼。 – plasma
另請參閱討論[這裏](http://stackoverflow.com/questions/6759088/multithreading-with-matlab)。 – plasma
我將實現一個從服務器接收答案的matlab-client程序。所以這個過程必須是異步的,matlab客戶端不應該等待一個答案來繼續它的程序。 – totoro