假设我有两个线程。在一个线程上,我正在执行一系列作业。在另一个线程上,我正在等待用户输入来控制这些作业(即跳到下一个作业)。例如(伪 C#):
public class Worker {
public List<Job> Jobs { get; set; }
public Worker(Controller anotherThread) {
anotherThread.SkipJobRequested += OnSkipJobRequested;
}
public DoWork() {
foreach (Job job in Jobs) {
// Do various work...
}
}
// Event that fires on Controller thread
public void OnSkipJobRequsted(Object sender, EventArgs args) {
// Somehow skip to the next job
}
}
我不确定我应该如何处理跳到下一份工作。我想到的一种可能性是在IsSkipRequested
请求跳过时设置一个实例变量(如 ),并在DoWork()
.
是否存在我可以用来处理此事件的任何其他模式?