小编Nog*_*iax的帖子

异步主c#7.1中的线程切换

我遇到了c#7.1的异步主要功能问题.

这是一个示例项目的github链接,用于演示此问题:https://github.com/xorpherion/CSharpAsyncMainProblem

该代码用作游戏循环的一部分.正如您所看到的,主要签名使用异步,因此在幕后创建了同步上下文.

Timedloop类是一种计时器,它尝试在当前时间超过限制时安排事件(OnTick).有3种方法可以触发事件:SpinLoop,WaitLoopAsync和WaitLoop.SpinLoop和WaitLoop按预期运行(OnTick的单线程调度).问题出在WaitLoopAsync上.我在这里期待的是也保持当前线程为.ConfigureAwait未设置为"false".但是当您运行代码时,您将在控制台上看到线程ID更改的消息.其他循环"类型"不会发生这种情况.

我的问题是:为什么延续没有安排在同一个线程上?

我在.net核心2.1上运行它.

c# async-await

-1
推荐指数
1
解决办法
204
查看次数

标签 统计

async-await ×1

c# ×1