[英]Is it correct to use std::async for background tasks inside an internal thread (not from main process's thread)
我想听听您对这个通用技术概念的看法。 (我正在使用 microsoft windows 操作系统)
有一个进程,这个进程为不同的任务创建多个线程。
主进程:是一个用C#代码编写的windows服务。 在主进程中创建了几个线程:Thread_01、Thread_02、...
Thread_01 内部:有一个用托管 C++ 编写的 Wrapper dll 来消耗 DLL_01。 (DLL_01 是我用原生 C++ 代码编写的 dll,它提供了一些 API:添加、删除、连接)
Add 和 Remove 可以运行得非常快,但 Connect 可能需要 10 秒以上的时间并阻塞调用者直到它完成。
我正在考虑使用 std::async 来执行 Connect 函数代码,并通过回调将结果发送给调用者(主进程)。
这是一个好方法吗? 听说不能创建或者最好不要在内部线程中创建任何线程,是真的吗? 如果是这样, std::async 怎么样?
任何建议表示赞赏。 提前致谢,
您所描述的任何内容都不会使您的代码无法接受线程的使用。
像往常一样,线程存在需要处理的问题:
关于您使用回调的方法,请考虑std::future<>
。 这解决了上面的一些问题,尽管有些只是转移到调用者身上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.