有没有可能的方法来实现这一目标?
例如,我有一个 I/O 完成端口,有 10 个工作线程从中拉出任务。每个任务都与一个对象相关联。有些对象不能同时处理,所以如果一个线程正在处理其中一个对象,而第二个线程拉出需要这个对象的任务,则第二个线程必须等待第一个线程完成。
作为一种变通方法,对象可能有一个在释放时发出信号的事件。如果一个线程因为接收到的任务需要一个锁定的对象而被“卡住”,它可以等待锁定的对象被释放,或者等待新任务排队。如果它选择了一个新任务,它将把它无法处理的任务推回队列中。
我知道替代方法,但这似乎是应该存在的功能。这可以通过 Windows API 实现吗?