2

我有一个应用程序,其任务 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。

4

0 回答 0