我刚刚开始在Visual Studio中学习ppl,我开始学习任务。到目前为止一直很好,例如我了解基础知识。但是,如何创建接收参数的任务?也就是说,创建不带参数的任务是相当简单的,但是任何参数的任何参数对我来说都不是很明显。
任务创建任务不带任何参数很容易:
params[:sessions][:email]
无法真正传递任何参数。我该怎么做呢 如果我尝试将参数传递给lambda,我会收到编译错误。
答案 0 :(得分:0)
传递给create_task的参数可以是lambda函数,如代码中所示。
那么问题就变成了如何将参数传递给lambda函数。
以下是几种lambda:
// basic lambda
auto func = [] () { cout << "A basic lambda" ; } ;
// lambda where variable is passed by value
auto func = [](int n) { cout << n << " "; }
// lambda where variable is passed by refrence
auto func = [](int& n) { cout << n << " "; }
// lambda with capture list
int x = 4, y = 6;
auto func = [x, y](int n) { return x < n && n < y; }
// lambda that explicitly returns an int type
auto func = [] () -> int { return 42; }
答案 1 :(得分:-1)
此链接提供了将字符串传递给任务的一个很好的示例。
https://msdn.microsoft.com/en-us/library/dd492427.aspx
示例代码是
return create_task([s]
{
// Print the current value.
wcout << L"Current value: " << *s << endl;
// Assign to a new value.
*s = L"Value 2";
}).then([s]
{
// Print the current value.
wcout << L"Current value: " << *s << endl;
// Assign to a new value and return the string.
*s = L"Value 3";
return *s;
});