CallCommand from different thread?

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 27/08/2008 at 16:29, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   10.5 
Platform:      
Language(s) :     C++  ;

---------
Hi!

Does anyone know, how to call CallCommand from a different thread?
I can't find a principe to do it, because CallCommand requires the MainThread.. what would you suggest?

Thank you...

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 28/08/2008 at 03:24, xxxxxxxx wrote:

It seems to work for me, see code:

> \> class MyThread : public Thread \> { \>      private: \> \>      public: \>           MyThread() { } \>           virtual ~MyThread() { End(); Wait(FALSE); } \> \>           virtual void Main(void); \>           virtual const CHAR \*GetThreadName(void) { return "Test Thread"; } \> }; \> \> void MyThread::Main(void) \> { \>      GePrint("render thread"); \>      CallCommand(5159); \> } \> \> class MenuTest : public CommandData \> { \>      public: \>           virtual Bool Execute(BaseDocument \*doc); \> }; \> \> Bool MenuTest::Execute(BaseDocument \*doc) \> { \>      MyThread mt; \>      mt.Start(FALSE); \> \>      return TRUE; \> } \>

cheers,
Matthias

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 28/08/2008 at 14:55, xxxxxxxx wrote:

Hi!

Perhaps I am wrong, but I checked out CallCommand

void CallCommand(LONG id, LONG subid)
{
      if (!GeIsMainThread()) return;
     BaseContainer msg(COREMSG_CINEMA_EXECUTEEDITORCOMMAND);
     msg.SetLong(COREMSG_CINEMA_EXECUTEEDITORCOMMAND, id);
     msg.SetLong(COREMSG_CINEMA_EXECUTESUBID,subid);
     SendCoreMessage(COREMSG_CINEMA, msg, 0);
}

and if CallCommand is not called from the main thread, it aborts, so it shouldn't be executed, should it?

Thanks a lot.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 03/09/2008 at 15:43, xxxxxxxx wrote:

Hi Matthias,

you wrote that CallCommand works in a different thread. Do you know why this works, altough !GeIsMainThread() should prevent that?

Bye.. 🙂