Project

General

Profile

Support #2176

Emit signal from another thread to Wt main thread with parameters

Added by Vitaly Volochay about 7 years ago. Updated about 7 years ago.

Status:
Closed
Priority:
Urgent
Assignee:
Target version:
Start date:
09/04/2013
Due date:
% Done:

0%

Estimated time:

Description

Hello! As far as I know I can't use Wt signal/slots system outside Wt main thread because WApplication::instance doesn't exist in other threads. So I need somehow pass data from another thread to my widget. I need something similar to PostedSignal from http://redmine.webtoolkit.eu/boards/1/topics/5182 but with parameters.

If Wt signal/slots system works outside main thread it will looks like this:

/* main gui class */

class SomeCustomWidget: public WContainerWidget

{

...

void onDataChanged(int value);

Controller* ctrl;

};

SomeCustomWidget::SomeCustomWidget()

{

...

ctrl->dataChanged().connect(this, &SomeCustomWidget::onDataChanged);

}

/* ctrl live in another thread */

class Controller

{

...

Wt::Signal& dataChanged();

};

What is the best way to solve my problem?

#1

Updated by Wim Dumon about 7 years ago

call post in combination with boost::bind.

Wt::WServer::instance()->post(sessionId, boost::bind(myFunction, myParameter));

where m_myFunction is a function accepting one parameter.

BR,

Wim.

#2

Updated by Koen Deforche about 7 years ago

  • Status changed from New to InProgress
  • Assignee set to Wim Dumon
#3

Updated by Vitaly Volochay about 7 years ago

Thanks, I solve my problem.

#4

Updated by Wim Dumon about 7 years ago

  • Status changed from InProgress to Closed

Also available in: Atom PDF