2016-09-20 9 views
0

Windowsのメインループで実行するタスクをスケジュールする方法はありますか?私はWindowsを作成してイベントを送信したくありません。 libdispatchでWindowsのメインループでC++のタスクを実行する方法

私はそれを行うことができます。

dispatch_async_f(dispatch_get_main_queue(), ...) 

またはプログラムのメインループに関連する、Windowsのスレッドプール内のスレッドはありますか?

背景: 現在、私はCSP(通信シーケンシャルプロセッシング)ライブラリを開発中で、ほとんどの場合、タスクはスレッドプールで実行できます。しかし、タスクがメインループで実行される必要があることがあります。 Windows上のアプリケーションがQtアプリケーションの場合は、すでに解決策があります。しかし、Windows上でQt以外のアプリケーションを使用する場合は、同様の解決策が必要です。

+0

私はWindowsのエキスパートではありませんが、GUIモードのアプリケーションのすべてのスレッドがウィンドウにバインドされているわけではありませんか?私はこれがコンソールモードのアプリケーションとどのように異なっているのかと考えていました。だから確かに窓がありますか? –

+0

あなたが求めていることは本当に不明です。 GetMessageループにフックしますか? Windowsアプリケーションは、デフォルトではシングルスレッドとイベントベースで動作します。 – rustyx

+0

あなたは少し具体的になることができますか? CreateThread()コールを使用して新しいスレッドを作成し、その中であなたの「タスク」を実行できないのはなぜですか? –

答えて

0

Windowsでは、各メッセージループは1つのスレッドに関連付けられています。これがあなたが求めるものなら、アプリケーションごとに複数のメッセージループを持つことができます。

関連する問題