xtd 0.2.0
Loading...
Searching...
No Matches
background_worker.h
Go to the documentation of this file.
1
4#pragma once
5#include "../forms_export.h"
6#include "component.h"
7#include "form.h"
11
13namespace xtd {
15 namespace forms {
33 struct data;
34
35 public:
37
43
45 ~background_worker() noexcept;
47
49
53 bool cancellation_pending() const noexcept;
54
57 bool is_busy() const noexcept;
58
62 bool worker_reports_progress() const noexcept;
66 void worker_reports_progress(bool value);
67
71 bool worker_supports_cancellation() const noexcept;
75 void worker_supports_cancellation(bool value);
77
79
84 void cancel_async();
85
88 virtual void on_do_work(do_work_event_args& e);
89
92 virtual void on_progress_changed(const progress_changed_event_args& e);
93
96 virtual void on_run_worker_completed(const run_worker_completed_event_args& e);
97
100 void run_worker_async();
101
105 template<typename argument_t>
106 void run_worker_async(argument_t argument) {
107 argument_(std::any(argument));
108 run_worker_async();
109 }
110
113 void report_progress(int32 percent_progress);
114
118 void report_progress(int32 percent_progress, std::any user_state);
120
122
127
131
136
137 private:
138 void argument_(std::any&& argument);
139
140 std::shared_ptr<data> data_;
141 };
142 }
143}
Represents an event.
Definition event.h:21
Executes an operation on a separate thread.
Definition background_worker.h:32
event< background_worker, progress_changed_event_handler > progress_changed
Occurs when report_progress(int32) is called.
Definition background_worker.h:130
event< background_worker, run_worker_completed_event_handler > run_worker_completed
Occurs when the background operation has completed, has been canceled, or has raised an exception.
Definition background_worker.h:134
void report_progress(int32 percent_progress)
Raises the ProgressChanged event.
background_worker() noexcept
Initializes a new instance of the background_worker class.
event< background_worker, do_work_event_handler > do_work
Occurs when run_worker_async() is called.
Definition background_worker.h:126
void report_progress(int32 percent_progress, std::any user_state)
Raises the ProgressChanged event.
Provides the base implementation and enables object sharing between applications.
Definition component.h:23
Provides data for the xtd::forms::background_worker::do_work event handler.
Definition do_work_event_args.h:21
Provides data for the xtd::forms::background_worker::progress_changed event handler.
Definition progress_changed_event_args.h:21
Provides data for the xtd::forms::background_worker::run_worker_completed event handler.
Definition run_worker_completed_event_args.h:22
Contains xtd::forms::component class.
Contains xtd::forms::do_work_event_handler event handler.
#define forms_export_
Define shared library export.
Definition forms_export.h:13
int_least32_t int32
Represents a 32-bit signed integer.
Definition types.h:131
The xtd::forms namespace contains classes for creating Windows-based applications that take full adva...
Definition xtd_about_box.h:12
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.h:10
Contains xtd::forms::progress_changed_event_handler event handler.
Contains xtd::forms::run_worker_completed_event_handler event handler.
Contains xtd::forms::style_sheets::form alias.