Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
async-operation-api-example
Manage
Activity
Members
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Package Registry
Model registry
Operate
Terraform modules
Analyze
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Yuya Nishihara
async-operation-api-example
Commits
89c3e378
Commit
89c3e378
authored
4 years ago
by
Yuya Nishihara
Browse files
Options
Downloads
Patches
Plain Diff
Add short README
parent
df75fd74
Branches
master
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
README.ja.txt
+58
-0
58 additions, 0 deletions
README.ja.txt
with
58 additions
and
0 deletions
README.ja.txt
0 → 100644
+
58
−
0
View file @
89c3e378
非同期処理 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
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment