我在程序中有一个异步方法。此任务需要异步,因为它执行网络请求,但我不希望它可重入。换句话说,如果该方法从代码块A调用,然后在第一次调用返回之前再次从代码块B调用,我希望第二个调用等待第一个调用完成后才运行。
如果该方法不是异步方法,我可以使用此注释实现: [MethodImpl(MethodImplOptions.Synchronized)]
然而,编译器不允许将该注释附加到异步方法。
我还能做什么?
如果该方法不是异步方法,我可以使用此注释实现: [MethodImpl(MethodImplOptions.Synchronized)]
然而,编译器不允许将该注释附加到异步方法。
我还能做什么?
SemaphoreSlim
这样的东西,以便只允许一个线程进入该方法。 - germi