Skip to content
Snippets Groups Projects
Commit 89c3e378 authored by Yuya Nishihara's avatar Yuya Nishihara
Browse files

Add short README

parent df75fd74
Branches master
No related tags found
No related merge requests found
非同期処理 API 例
=================
注: クラス・メソッド名等は仮。メソッドは不足していると思われる。
Backend
-------
(所属スレッド: Main)
バックエンド API を GUI へ提供するクラスの例。
Watcher
-------
(所属スレッド: Main)
GUI 側の通知・操作用共通ハンドル。
GUI へ不必要・不安全な API を提供したくないので、 Handler (後述)をラップし
隠蔽している。
Backend に非同期リクエストを要求すると、その戻り値として GUI へ与えられる。
watcher = backend.run(...)
プログレス、終了通知、キャンセル操作等のインターフェースを GUI へ提供する。
ProgressBar {
to: watcher.progressMaximum
value: watcher.progressValue
}
Button {
onClicked: watcher.cancel()
}
Handler
-------
(所属スレッド: Main)
Watcher と Worker スレッド間の橋渡しをする。
GUI からはアクセスできない。
キャンセル可能な処理単位で、 signal-slot を用いて Worker へ処理を要求する。
また、 Worker からの完了通知を受け取る。
恐らく、処理に応じて Handler をサブクラス化すると思われる。
(runFoo() に対して FooHandler など)
Worker
------
(所属スレッド: Worker)
ワーカースレッドのサンプル実装。
https://doc.qt.io/qt-5/qthread.html#details
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment