|
|
1
1
我认为问题出在RestartAsync方法内部。请注意,如果异步方法要等待某个任务,它将立即返回该任务,因此第二个RestartAsync实际上在交换其任务之前返回,第三个RestartAsync将进入并等待任务第一个RestartAsync。 另外,如果RestartAsync将由多个线程执行,则可能需要将CTS和SomeThingIsrunning任务包装成一个线程,并使用interlocked.exchange方法交换值,以防止出现争用情况。 以下是我的示例代码,未完全测试:
|
|
|
2
1
这是一个并发问题。所以,您需要一个并发问题的解决方案:信号量。
在一般情况下,还应考虑运行的方法何时引发
试试这个:
|
|
|
byles1506 · 不理解异步等待执行顺序 1 年前 |
|
|
user2741831 · 等待执行的顺序在节点中没有意义 1 年前 |
|
|
user1233894 · 尝试从全局函数传递值 1 年前 |
|
cluster1 · 任务(小写)与任务(大写) 1 年前 |
|
|
haru · 为什么我的代码在加载页面时两次获取相同的项目? 2 年前 |