延迟分配实现的并发任务

时间:2013-08-02 21:51:57

标签: c++ concurrency

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

0 个答案:

没有答案