所以我有一个 UI 线程。人们点击某物是因为他们喜欢它。所以点击会触发一些函数调用。其中一个底层函数调用使用 CDROM 驱动程序,该驱动程序通过尝试几次并发出疯狂的重击来读取脏盘。
所以我想要一个响应式用户界面,并在我的函数调用上放置等待。所以当人点击时,函数将控制权交给 UI 线程。函数试图读取 CDROM,但它真的很脏,所以它向调用者抛出异常。该调用者计算重试次数并继续尝试 3 次。
所以,如果这一切都在等待,我在哪里保留计数?
如果我将计数保持在较低级别并且该级别放弃等待,它不能继续重试,直到尝试三次,因为它已被放弃。
但如果我不放弃,我就无法维持响应式 UI。
我是否将计数保留在 Task 对象中?究竟哪个线程/等待级别可以负责检查重试计数?