当前位置: 首页 > news >正文

如何将微信和企业网站同步简易软件开发工具

如何将微信和企业网站同步,简易软件开发工具,云南网络营销推广,餐饮类网站建设达到的作用目录 概念 使用示例1 使用示例2 概念 FGraphEventRef 本质上是对一个异步任务或者一组相关异步任务在虚幻引擎任务图系统中的一种引用#xff08;reference#xff09;。虚幻引擎的任务图系统用于高效地调度和管理各种异步任务#xff0c;协调它们的执行顺序以及处理任务…目录 概念 使用示例1 使用示例2 概念 FGraphEventRef 本质上是对一个异步任务或者一组相关异步任务在虚幻引擎任务图系统中的一种引用reference。虚幻引擎的任务图系统用于高效地调度和管理各种异步任务协调它们的执行顺序以及处理任务之间的依赖关系等而 FGraphEventRef 就是开发者与这个任务图系统交互的一个关键 “接口”通过它可以实现对任务的创建、跟踪以及依赖管理等操作。 使用示例1 先创建并执行一个简单的异步任务SimpleEvent等待其完成后再批量创建 20 个异步任务存入 SimpleEventArray 中最后等待这 20 个任务全部完成以此体现任务图系统在协调多线程任务的执行顺序以及处理任务之间依赖关系的作用。 代码如下所示 void UThreadSubsystem::GraphEvent() {FGraphEventRef SimpleEvent FFunctionGraphTask::CreateAndDispatchWhenReady([this]() {PrintLogInThread(TEXT(SimpleEvent Start));FPlatformProcess::Sleep(3);PrintLogInThread(TEXT(SimpleEvent End));});check(!SimpleEvent-IsComplete());SimpleEvent-Wait();FGraphEventArray SimpleEventArray;for (size_t i 0; i 20; i){SimpleEventArray.Add(FFunctionGraphTask::CreateAndDispatchWhenReady([this,i]() {FString Info1 FString::Printf(TEXT(SimpleEvent Start -- %d), i);PrintLogInThread(Info1);FPlatformProcess::Sleep(i%3);FString Info2 FString::Printf(TEXT(SimpleEvent End -- %d), i);PrintLogInThread(Info2);}));}FTaskGraphInterface::Get().WaitUntilTasksComplete(SimpleEventArray); }void UThreadSubsystem::PrintLogInThread(FString Info) {AsyncTask(ENamedThreads::GameThread, [Info]() {UE_LOG(LogTemp, Warning, TEXT(ThreadLog:[%s]), *Info);}); } 在第147行代码~151行代码中通过 FFunctionGraphTask::CreateAndDispatchWhenReady 函数创建一个异步任务并将返回的 FGraphEventRef 对象赋值给 SimpleEvent。在该异步任务的 lambda 表达式中通过调用 FPlatformProcess::Sleep(3); 让线程休眠 3 秒来模拟任务执行过程中的耗时操作。 第152行代码用于检查在创建任务后任务是否立即就完成了正常情况下刚创建的任务应该还未执行完所以这里预期 IsComplete 返回 false如果出现不符合预期的情况即任务已经完成check 宏会触发断言失败有助于在开发阶段发现可能的逻辑错误。 第153行代码调用 SimpleEvent-Wait(); 会使当前线程阻塞一直等待这个异步任务执行完毕确保后续代码在该任务完成后才继续执行实现了简单的任务同步机制保证了任务执行顺序上的先后关系。 第155行代码创建了一个 FGraphEventArray 类型的数组 SimpleEventArray用于存放多个 FGraphEventRef 对象每个对象对应一个异步任务。 第156~167行代码通过 for 循环创建20个异步任务 第169行代码通过调用 FTaskGraphInterface::Get().WaitUntilTasksComplete(); 函数让当前线程阻塞等待直到 SimpleEventArray 数组中存放的所有 20 个异步任务都执行完毕实现了对多个并行任务的同步等待功能。 执行结果如下 使用示例2 该示例主要利用虚幻引擎的任务图系统来创建多个异步任务并通过设置任务之间的依赖关系实现特定的任务执行顺序。要实现的任务执行顺序如下图所示我们需要先执行TaskATaskA执行完毕后开始同时执行TaskA1和TaskBTaskB执行完毕后再执行TaskC在TaskA1和TaskC都执行完毕的基础上再执行TaskD。 代码如下所示  void UThreadSubsystem::BatchGraphEvent() {FGraphEventRef SimpleEventA FFunctionGraphTask::CreateAndDispatchWhenReady([this]() {PrintLogInThread(TEXT(SimpleEventA Start));FPlatformProcess::Sleep(3);PrintLogInThread(TEXT(SimpleEventA End));});FGraphEventRef SimpleEventB FFunctionGraphTask::CreateAndDispatchWhenReady([this]() {PrintLogInThread(TEXT(SimpleEventB Start));FPlatformProcess::Sleep(3);PrintLogInThread(TEXT(SimpleEventB End));}, TStatId{}, SimpleEventA);FGraphEventRef SimpleEventC FFunctionGraphTask::CreateAndDispatchWhenReady([this]() {PrintLogInThread(TEXT(SimpleEventC Start));FPlatformProcess::Sleep(3);PrintLogInThread(TEXT(SimpleEventC End));}, TStatId{}, SimpleEventB);FGraphEventRef SimpleEventA1 FFunctionGraphTask::CreateAndDispatchWhenReady([this]() {PrintLogInThread(TEXT(SimpleEventA1 Start));FPlatformProcess::Sleep(3);PrintLogInThread(TEXT(SimpleEventA1 End));}, TStatId{}, SimpleEventA);FGraphEventArray Prerequisite;Prerequisite.Add(SimpleEventA1);Prerequisite.Add(SimpleEventC);FGraphEventRef SimpleEventD FFunctionGraphTask::CreateAndDispatchWhenReady([this]() {PrintLogInThread(TEXT(SimpleEventD Start));FPlatformProcess::Sleep(3);PrintLogInThread(TEXT(SimpleEventD End));}, TStatId{}, Prerequisite);SimpleEventD-Wait();PrintLogInThread(TEXT(All Tasks Completed)); } 第174~178行代码创建了一个异步任务 SimpleEventA 第180~184行代码创建了一个异步任务 SimpleEventB并设置任务 SimpleEventB 设置了依赖于任务 SimpleEventA 第186~190行代码创建了一个异步任务 SimpleEventC并设置任务 SimpleEventC 设置了依赖于任务 SimpleEventB 第192~196行代码创建了一个异步任务 SimpleEventA1并设置任务 SimpleEventA1 设置了依赖于任务 SimpleEventA 第198~206行代码首先创建了一个 FGraphEventArray 类型的数组 Prerequisite并将SimpleEventA1和 SimpleEventC 这两个 FGraphEventRef 对象添加到其中以此表示一组前置任务条件。然后创建任务 SimpleEventD 时将 Prerequisite 作为参数传入意味着SimpleEventD依赖于 SimpleEventA1 和 SimpleEventC 这两个任务只有当这两个任务都执行完成后SimpleEventD才会开始执行。  第208行代码通过调用 SimpleEventD-Wait(); 让当前线程阻塞等待直到任务SimpleEventD执行完毕。由于 SimpleEventD 依赖于前面多个任务所以实际上是等待整个任务链上的所有相关任务都完成后此阻塞才会解除。 执行结果如下 如果要统计所有任务执行花费时间可以通过添加如下代码实现 执行结果如下总共花费12s和预想的一样。
http://www.hkea.cn/news/14404621/

相关文章:

  • 网站开发定制合同范本wordpress 改成论坛
  • 易语言可以做api网站对接吗辽宁建设工程信息网项目经理变更
  • 上传网站到百度wordpress seo 主题
  • 藤县建设局网站做兼职什么网站比较好
  • 吉安市建设局施工管理站网站灌云县城乡建设局网站
  • 网站项目建设人员规划wordpress easy stmp
  • 信阳公司网站建设做无障碍浏览网站
  • 徐州丰县建设局网站中信建设有限责任公司项目人员配置
  • 解析网站dns自己做网站和推广
  • 漯河市源汇区网站建设软件开发属于什么专业
  • 做网站小代码大全网站源码如何保存
  • 电子商务网站建设试卷及答案专业外贸网站建设公司价格
  • 怎么写网站建设宣传家乡的网站
  • 二七区建设局网站wordpress可以做电影站
  • 深圳博纳网站建设英迈寰球网站建设
  • 石家网站建设公司排名网站建设 局部放大镜功能
  • 网站仿站大多少钱wordpress页面跳转失败
  • 无线网站制作有哪些做网站好的公司
  • 企业营销策划实现的途径上海市网站seo公司
  • 有哪些做的好看的网站吗做seo网站空间
  • 网站推广是什么杭州seo公司排名
  • p2p提供网站建设违法百度一下官方网
  • wordpress 栏目菜单做网站seo的步骤
  • 莱阳网站建设公司杭州网络营销公司
  • 网站建设和网站推广网站标题title
  • 做网站服装app网络销售推广平台
  • 苏州市吴中区建设局网站wordpress 文章 二维码
  • 网站正在建设中请稍后介绍自己的家乡遵义网站建设
  • 专业商城网站设计wordpress if
  • 网站建设交流平台seo系统培训哪家好