Main UI thread or child thread?

Hello! Thank you for your great work and help.

Description
I am working on my own application which will use Windows Zoom Sdk. I want to use Windows Zoom Sdk on child thread. I saw that the official documentation forbid this (https://marketplace.zoom.us/docs/sdk/native-sdks/windows/mastering-sdk/windows-sdk-functions).

Please tell me if I understood correctly.

  1. I can’t use Windows Zoom Sdk in additional threads or tasks? If not, please tell me what is the reason? Perhaps I can work around this limitation.
  2. Can I call individual Windows Zoom Sdk functions on other threads? For example Init() on the main thread and PutInWaitingRoom() on the child thread.
  3. Why does Windows Zoom Sdk need a “main UI thread”?

Thanks a lot for your support!

Hey @I_cool,

Thanks for using the dev forum!

Great questions :slight_smile:
The SDK can perform UI operations in your application. Anytime this happens, it should be on the main thread as UI updates should never be performed on a background thread. This doesn’t necessarily mean that all of the SDK related functions need to be on that thread, but if there is even a possibility that a certain function will update the UI in some way, it should be called from the main thread. Something like joining a meeting should not happen on a background thread as it shows the meeting UI. Something like initing the SDK could, however, you need to be conscious of race conditions. The Zoom SDK “events” should help to guide your threading logic.

Thanks!
Michael

Hi @Michael_Condon ,
Thank you for your quick response!

I’m a little confused. I’m trying to use some functions in tasks and because of this, some events stopped working (But when I do not use tasks, everything works well)

For example, I describe the situation.
I call the PutInWaitingRoom() function in the task.

  • waiting room enabled
  1. The host creates a meeting.
  2. The participant connects to the meeting and enters the waiting room.
  3. The host sees this event that a new participant has connected to the waiting room.
  4. The host invites the participant to the meeting.
  5. The participant joins the meeting.
  6. The host sees the event that a new participant has connected.
  7. The host transfers the participant to the waiting room.
    8. The host does not receive the event that the participant has appeared in the waiting room (OnWatingRoomUserJoin).

If a new participant joins the meeting, the host’s OnWatingRoomUserJoin event is triggered. It doesn’t work just after the PutInWaitingRoom button has been pressed.

This event does not have access to the GUI. And there are no errors. All functions return “SDKERR_SUCCESS”.

With what it can be connected?
What am I doing wrong?

Thanks for your help!

Hey @I_cool,

Hmm that is indeed strange. I do not believe this is caused by a threading issue and this may just be a bug with the waiting room functionality. Can you provide the SDK version number you are using?

Thanks!
Michael

Hi @Michael_Condon

SDK Version = v.5.5.12509.0330

Hey @I_cool,

Can you update to the latest version and let me know if anything changes?

Thanks!
Michael

Hey @Michael_Condon ,

I updated the SDK to the latest version (v5.5.12511.0422) but nothing has changed(

Hey @I_cool,

Are you seeing this in C# or C++?

Thanks!
Michael

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.