我有一个应用程序,其任务 impl 需要在 switch 语句中设置。这意味着任务在进入交换机之前被默认构造并且没有实现。进入开关后,我想设置任务 impl(参见 t.get 语句)。但是,结果是抛出异常,因为没有实现。鸡和蛋的问题:
#include <ppltasks.h>
using namespace concurrency;
class Resource
{
public:
};
int _tmain(int argc, _TCHAR* argv[])
{
// Create a task.
Resource r;
task< Resource > t;
switch( 2 )
{
case 2:
t.get() = r; // runtime error "throw invalid_operation("get() cannot be called on a default constructed task.")
break;
}
t.wait();
return 0;
}
我玩弄 _SetImpl 但无法让它工作。关于什么是错的任何想法?我认为会有一个 .set( T & t ) 函数来设置 impl。