Aracılığıyla paylaş


<future>

Bir işlevi (büyük olasılıkla ayrı bir iş parçacığında) çalıştırmayı ve sonucunu almayı basitleştiren sınıf şablonlarını ve destekleyici şablonları tanımlamak için standart üst bilgi <geleceğini> ekleyin. Sonuç, işlev tarafından döndürülen değer veya işlev tarafından yayılan ancak işlevde yakalanmayan bir özel durumdur.

Bu üst bilgi, diğer ConcRT mekanizmalarıyla birlikte kullanabilmeniz için Eşzamanlılık Çalışma Zamanı 'nı (ConcRT) kullanır. ConcRT hakkında daha fazla bilgi için bkz . Eşzamanlılık Çalışma Zamanı.

Sözdizimi

#include <future>

Açıklamalar

Dekont

/clr kullanılarak derlenen kodda bu üst bilgi engellenir.

Zaman uyumsuz sağlayıcı bir işlev çağrısının sonucunu depolar. Bir işlev çağrısının sonucunu almak için zaman uyumsuz bir dönüş nesnesi kullanılır. İlişkili zaman uyumsuz durum, zaman uyumsuz bir sağlayıcı ile bir veya daha fazla zaman uyumsuz dönüş nesnesi arasında iletişim sağlar.

Program doğrudan ilişkili zaman uyumsuz durum nesneleri oluşturmaz. Program, gerektiğinde zaman uyumsuz bir sağlayıcı oluşturur ve bu sağlayıcıdan ilişkili zaman uyumsuz durumunu sağlayıcıyla paylaşan zaman uyumsuz bir dönüş nesnesi oluşturur. Zaman uyumsuz sağlayıcılar ve zaman uyumsuz dönüş nesneleri, paylaşılan ilişkili zaman uyumsuz durumlarını tutan nesneleri yönetir. İlişkili zaman uyumsuz duruma başvuran son nesne bunu serbest bıraktığında, ilişkili zaman uyumsuz durumu tutan nesne yok edilir.

İlişkili zaman uyumsuz durumuna sahip olmayan zaman uyumsuz bir sağlayıcı veya zaman uyumsuz dönüş nesnesi boş.

İlişkili zaman uyumsuz durum yalnızca zaman uyumsuz sağlayıcısı bir dönüş değeri depoladıysa veya bir özel durum depoladıysa hazır olur.

Şablon işlevi async ve sınıf şablonları promise ve packaged_task zaman uyumsuz sağlayıcılardır. Sınıf şablonları future ve shared_future zaman uyumsuz dönüş nesnelerini açıklar.

, futureve shared_future sınıf şablonlarının promiseher birinin türü void için bir uzmanlığı ve bir değeri başvuruya göre depolamak ve almak için kısmi bir özelleştirmesi vardır. Bu özelleştirmeler birincil şablondan yalnızca döndürülen değeri depolayan ve alan işlevlerin imzalarında ve semantiğinde farklılık gösterir.

Sınıf şablonları future ve shared_future geriye dönük uyumluluk için korunan bir durum dışında yıkıcılarını hiçbir zaman engellemez: ile başlatılan std::asyncbir futureshared_futuregöreve eklenmiş olan diğer tüm geleceklerden farklı olarak, yok edici görev tamamlanmadıysa engeller; başka bir deyişle, bu iş parçacığı henüz çağrılmazsa .get() veya .wait() görev çalışmaya devam ederse engeller. Taslak standardının açıklamasına std::async aşağıdaki kullanılabilirlik notu eklenmiştir: "[Not: std::async'ten edinilen bir gelecek yerel kapsamın dışına taşınırsa, geleceği kullanan diğer kodlar, paylaşılan durumun hazır olması için geleceğin yıkıcısının engellenebileceğinin farkında olmalıdır.—son not]" Diğer tüm durumlarda, future ve shared_future yıkıcılar gereklidir ve hiçbir zaman engellemeleri garanti edilir.

Üyeler

Sınıflar

Ad Tanım
future Sınıfı Zaman uyumsuz dönüş nesnesini açıklar.
future_error Sınıfı Nesneleri yöneten future tür yöntemleri tarafından oluşturulabilen bir özel durum nesnesini açıklar.
packaged_task Sınıfı Bir çağrı sarmalayıcısı olan ve çağrı imzası Ty(ArgTypes...)olan zaman uyumsuz bir sağlayıcıyı açıklar. İlişkili zaman uyumsuz durumu, olası sonucun yanı sıra çağrılabilen nesnesinin bir kopyasını tutar.
promise Sınıfı Zaman uyumsuz sağlayıcıyı açıklar.
shared_future Sınıfı Zaman uyumsuz dönüş nesnesini açıklar. Nesnenin future aksine, zaman uyumsuz bir sağlayıcı herhangi bir sayıda shared_future nesneyle ilişkilendirilebilir.

Yapılar

Ad Tanım
is_error_code_enum Yapısı depolamak için error_codeuygun olduğunu future_errc gösteren özelleştirme.
uses_allocator Yapısı Her zaman doğru olan özelleştirme.

İşlevler

Ad Tanım
async Zaman uyumsuz bir sağlayıcıyı temsil eder.
future_category Nesnelerle future ilişkili hataları karakterize eden nesneye bir başvuru error_category döndürür.
make_error_code Hataları karakterize future eden nesnesine error_category sahip bir error_code oluşturur.
make_error_condition Hataları karakterize future eden nesnesine error_category sahip bir error_condition oluşturur.
Takas Bir nesnenin ilişkili zaman uyumsuz durumunu diğerininkiyle promise değiştirir.

Listelemeler

Ad Tanım
future_errc Sınıfı tarafından future_error bildirilen hatalar için sembolik adlar sağlar.
future_status Zamanlanmış bekleme işlevinin döndürebileceği nedenlerle sembolik adlar sağlar.
Başlat şablon işlevi asynciçin olası modları açıklayan bir bit maskesi türünü temsil eder.

Ayrıca bkz.

Üst Bilgi Dosyaları Başvurusu