使用基于任务的异步模式关于自定义返回对象

时间:2015-09-02 21:38:50

标签: multithreading asynchronous

当我的目标(或许我很困惑)实际上是返回一个复杂的类,它已经对其执行了一系列过程(此处未描述的任务列表) 我可以将自定义对象传递给实际的" DoSomethingAsync"启动任务的方法,我可以将其结果操作到对象中以将其返回给调用者SomethingAsync,以便其调用者可以将数据持久保存到磁盘(SQL或Whatever)或将其移动到我的进程中的下一步吗?

对任务的异步步骤的所有潜在中断或干扰使我担心....例如,当我将其结果收集到对象中时,Task1可能与Task2的进程冲突。

我的测试显示Task2的结果在我收获Task1的完成工作之前正在处理....但是此刻我关注的是正确传递&填充复杂对象,这个问题可能涉及如何正确使用多个真正的多线程任务的不同主题。我希望答案能够......和#34;运行asyncs来填充各自的属性&不要尝试在异步任务中填充自定义对象"但我不得不问,当然,我并不是第一个对此感到疑惑的人。

我刚刚审核了基于事件的&以任务为基础,我熟悉并且可以很好地工作。但是这一天我的TAP& TPL [任务并行库]研究和我可能会混淆自己的所有奇怪的细节,如CancellationToken和任务基组合,以及错误地混合TAP和amp; TPL动态..焦急地等待许多下来的选票谢谢

    public async Task<MyCustomObject> SomethingAsync()
{
    return await DoSomethingAsync(MyCustomObject);
}

0 个答案:

没有答案