diff options
Diffstat (limited to 'src/corelib/thread/qrunnable.cpp')
-rw-r--r-- | src/corelib/thread/qrunnable.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/corelib/thread/qrunnable.cpp b/src/corelib/thread/qrunnable.cpp index bd0a32b53d..c911cd0745 100644 --- a/src/corelib/thread/qrunnable.cpp +++ b/src/corelib/thread/qrunnable.cpp @@ -114,4 +114,31 @@ QRunnable::~QRunnable() \sa autoDelete(), QThreadPool */ +class FunctionRunnable : public QRunnable +{ + std::function<void()> m_functionToRun; +public: + FunctionRunnable(std::function<void()> functionToRun) : m_functionToRun(std::move(functionToRun)) + { + } + void run() override + { + m_functionToRun(); + } +}; + +/*! + \since 5.15 + + Creates a QRunnable that calls \a functionToRun in run(). + + Auto-deletion is enabled by default. + + \sa run(), autoDelete() +*/ +QRunnable *QRunnable::create(std::function<void()> functionToRun) +{ + return new FunctionRunnable(std::move(functionToRun)); +} + QT_END_NAMESPACE |