我有一个应用程序,其任务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&amp; t)函数来设置impl。