【发布时间】:2018-12-11 01:42:01
【问题描述】:
来自this,所有示例均使用Windows自带的函数进行异步操作。
是不是不能自己创建异步函数?
例如
//MainPage.xaml.h
int summation(int start_num, int stop_num);
//MainPage.xaml.cpp
int test_thread::MainPage::summation(int start_num, int stop_num)
{
int sum = 0;
for (start_num; start_num <= stop_num; start_num++) sum += start_num;
return sum;
}
然后这样称呼它,
IAsyncOperation<int> sum = summation(1, 10000000000);//error
auto sumTask = Concurrency::create_task(sum);
sumTask.then(/*...*/);
我也尝试将函数定义为
//MainPage.xaml.h
IAsyncOperation<int>^ summer(int start_num, int stop_num);
但出现此错误无法重载仅通过返回类型区分的函数
【问题讨论】:
-
你应该可以使用 lambdas,比如:
create_task([]() -> int { return summation(1, 100000); })
标签: c++ asynchronous uwp