Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Çağrı imzası Ty(ArgTypes...)olan bir çağrı sarmalayıcısı olan zaman uyumsuz sağlayıcıyı açıklar. İlişkili zaman uyumsuz durumu , olası sonucun yanı sıra çağrılabilen nesnesinin bir kopyasını tutar.
Sözdizimi
template <class>
class packaged_task;
Üyeler
Ortak Oluşturucular
| Veri Akışı Adı | Açıklama |
|---|---|
| packaged_task | Bir packaged_task nesne oluşturur. |
| packaged_task::~packaged_task Yıkıcı | Bir packaged_task nesneyi yok eder. |
Genel Yöntemler
| Veri Akışı Adı | Açıklama |
|---|---|
| get_future | Gelecekteki aynı ilişkili zaman uyumsuz duruma sahip bir nesne döndürür. |
| make_ready_at_thread_exit | İlişkili zaman uyumsuz durumda depolanan çağrılabilir nesneyi çağırır ve döndürülen değeri atomik olarak depolar. |
| sıfırlama | İlişkili zaman uyumsuz durumu değiştirir. |
| değiş tokuş etmek | İlişkili zaman uyumsuz durumu belirtilen bir nesneyle değiştirir. |
| geçerli | Nesnenin ilişkili zaman uyumsuz durumuna sahip olup olmadığını belirtir. |
Ortak İşleçler
| Veri Akışı Adı | Açıklama |
|---|---|
| packaged_task::operator= | Belirtilen nesneden ilişkili zaman uyumsuz durumu aktarır. |
| packaged_task::operator() | İlişkili zaman uyumsuz durumda depolanan çağrılabilir nesneyi çağırır, döndürülen değeri atomik olarak depolar ve durumu hazır olarak ayarlar. |
| packaged_task::operator bool | Nesnenin ilişkili zaman uyumsuz durumuna sahip olup olmadığını belirtir. |
Gereksinimler
Üst bilgi:<gelecek>
Ad alanı: std
packaged_task::get_future
Aynı ilişkili zaman uyumsuz duruma sahip türde future<Ty> bir nesne döndürür.
future<Ty> get_future();
Açıklamalar
Nesnenin packaged_task ilişkili zaman uyumsuz durumu yoksa, bu yöntem hata koduna no_statesahip bir future_error oluşturur.
Bu yöntem, aynı ilişkili zaman uyumsuz duruma sahip bir packaged_task nesne için zaten çağrıldıysa, yöntemi hata kodu future_already_retrievedolan bir future_error oluşturur.
packaged_task::make_ready_at_thread_exit
İlişkili zaman uyumsuz durumda depolanan çağrılabilir nesneyi çağırır ve döndürülen değeri atomik olarak depolar.
void make_ready_at_thread_exit(ArgTypes... args);
Açıklamalar
Nesnenin packaged_task ilişkili zaman uyumsuz durumu yoksa, bu yöntem hata koduna no_statesahip bir future_error oluşturur.
Bu yöntem veya make_ready_at_thread_exit aynı ilişkili zaman uyumsuz duruma sahip bir packaged_task nesne için zaten çağrıldıysa, yöntemi hata koduna promise_already_satisfiedsahip bir future_error oluşturur.
Aksi takdirde, bu işleç çağrılır INVOKE(fn, args..., Ty); burada fn , ilişkili zaman uyumsuz durumda depolanan çağrılabilir nesnedir. Döndürülen herhangi bir değer, ilişkili zaman uyumsuz durumun döndürülen sonucu olarak atomik olarak depolanır.
packaged_task::operator() yerine, çağıran iş parçacığındaki tüm iş parçacığı yerel nesneleri yok edilene ready kadar ilişkili zaman uyumsuz durum olarak ayarlanmamıştır. Genellikle, ilişkili zaman uyumsuz durumda engellenen iş parçacıkları, çağrılan iş parçacığı çıkana kadar engellenmez.
packaged_task::operator=
Belirtilen nesneden ilişkili zaman uyumsuz durumu aktarır.
packaged_task& operator=(packaged_task&& Right);
Parametreler
Right
Bir packaged_task nesnesi.
Dönüş Değeri
*this
Açıklamalar
İşlemden sonra, Sağ artık ilişkili bir zaman uyumsuz duruma sahip değil.
packaged_task::operator()
İlişkili zaman uyumsuz durumda depolanan çağrılabilir nesneyi çağırır, döndürülen değeri atomik olarak depolar ve durumu hazır olarak ayarlar.
void operator()(ArgTypes... args);
Açıklamalar
Nesnenin packaged_task ilişkili zaman uyumsuz durumu yoksa, bu yöntem hata koduna no_statesahip bir future_error oluşturur.
Bu yöntem veya make_ready_at_thread_exit aynı ilişkili zaman uyumsuz duruma sahip bir packaged_task nesne için zaten çağrıldıysa, yöntemi hata koduna promise_already_satisfiedsahip bir future_error oluşturur.
Aksi takdirde, bu işleç çağrılır INVOKE(fn, args..., Ty); burada fn , ilişkili zaman uyumsuz durumda depolanan çağrılabilir nesnedir. Döndürülen tüm değerler, ilişkili zaman uyumsuz durumun döndürülen sonucu olarak atomik olarak depolanır ve durum hazır olarak ayarlanır. Sonuç olarak, ilişkili zaman uyumsuz durumda engellenen tüm iş parçacıklarının engeli kaldırılır.
packaged_task::operator bool
Nesnenin bir associated asynchronous stateöğesinin olup olmadığını belirtir.
operator bool() const noexcept;
Dönüş Değeri
true nesnenin ilişkili bir zaman uyumsuz durumu varsa; aksi takdirde , false.
packaged_task::p ackaged_task Oluşturucu
Bir packaged_task nesne oluşturur.
packaged_task() noexcept;
packaged_task(packaged_task&& Right) noexcept;
template <class Fn>
explicit packaged_task(Fn&& fn);
template <class Fn, class Alloc>
explicit packaged_task(
allocator_arg_t, const Alloc& alloc, Fn&& fn);
Parametreler
Right
Bir packaged_task nesnesi.
alloc
Bellek ayırıcı. Daha fazla bilgi için bkz <. ayırıcılar>.
Fn
Bir işlev nesnesi.
Açıklamalar
İlk oluşturucu, ilişkili zaman uyumsuz durumuna sahip olmayan bir packaged_task nesne oluşturur.
İkinci oluşturucu bir packaged_task nesne oluşturur ve ilişkili zaman uyumsuz durumu Sağdan aktarır. İşlemden sonra, Sağ artık ilişkili bir zaman uyumsuz duruma sahip değil.
Üçüncü oluşturucu, ilişkili zaman uyumsuz durumunda depolanan bir fn kopyasına sahip bir nesne oluştururpackaged_task.
Dördüncü oluşturucu, ilişkili zaman uyumsuz durumunda depolanan bir fn kopyasına sahip olan ve bellek ayırma için kullanan alloc bir nesne oluştururpackaged_task.
packaged_task::~packaged_task Yıkıcı
Bir packaged_task nesneyi yok eder.
~packaged_task();
Açıklamalar
İlişkili zaman uyumsuz durum hazır değilse, yıkıcı, ilişkili zaman uyumsuz durumda hata kodu broken_promise içeren bir future_error özel durumu depolar ve ilişkili zaman uyumsuz durumda engellenen tüm iş parçacıkları engellenir.
packaged_task::reset
Mevcut ilişkili zaman uyumsuz durumu değiştirmek için yeni bir ilişkili zaman uyumsuz durum kullanır.
void reset();
Açıklamalar
Aslında, bu yöntem yürütür *this = packaged_task(move(fn)). Burada fn , bu nesne için ilişkili zaman uyumsuz durumda depolanan işlev nesnesidir. Bu nedenle, nesnenin durumu temizlenir ve get_future, işleç() ve make_ready_at_thread_exit yeni oluşturulduğunda olduğu gibi çağrılabilir.
packaged_task::swap
İlişkili zaman uyumsuz durumu belirtilen bir nesneyle değiştirir.
void swap(packaged_task& Right) noexcept;
Parametreler
Right
Bir packaged_task nesnesi.
packaged_task::valid
Nesnenin bir associated asynchronous stateöğesinin olup olmadığını belirtir.
bool valid() const;
Dönüş Değeri
true nesnenin ilişkili bir zaman uyumsuz durumu varsa; aksi takdirde , false.