https://codereview.qt-project.org/c/qt/qtbase/+/489239

I have a patch to show my idea. I think it is worthwhile, you can provide an 
exists thread to QtConcurrent::run, isn't run the function in a new thread 
always.
________________________________
From: Volker Hilsheimer <volker.hilshei...@qt.io>
Sent: Saturday, June 10, 2023 00:05
To: Macieira, Thiago <thiago.macie...@intel.com>; JiDe Zhang <zc...@live.com>; 
development@qt-project.org <development@qt-project.org>
Subject: Re: [Development] Execute a function in the specified existing thread



On 9 Jun 2023, at 02:00, Thiago Macieira <thiago.macie...@intel.com> wrote:

On Wednesday, 7 June 2023 19:18:02 PDT JiDe Zhang wrote:
please make sure your contribution uses QMetaCallEvent.

Why uses QMetaCallEvent? I don't know how to make the function arguments to
void** for QMetaCallEvent constructor. Maybe I can use
QAbstractMetaCallEvent.

My point is that a contribution to QtCore should use the most efficient method
of getting the job done without undue complexity. That means I can accept
inefficiencies provided they make the code more readable & maintainable than
otherwise would have been, but not if they aren't justified.

As of https://codereview.qt-project.org/c/qt/qtbase/+/469799, creating a 
QMetaCallEvent is pretty straight-forward.

And creating the QCallableObject needed for that is also easier by the 
makeSlotObject helper, see 
https://codereview.qt-project.org/c/qt/qtbase/+/475547.

It’s still requires working with private APIs, but there’s a reason those APIs 
exist, and that they are private - there are many cases you want to support 
(functors and lambdas, member-function-pointers, free functions, move-only 
functors etc).

Volker

-- 
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development

Reply via email to