0

我有一堆"_isCancelled"标志的长时间运行的操作

// long running code
if (_isCancelled)
  return;

// more code
if (_isCancelled)
  return;

// more code

if (_isCancelled)
  return;

// etc.

但如果我能以某种方式从“外部”监听线程中止操作,添加更多“长时间运行的代码”会更干净、更容易

例如

-(void)longRunningAsyncOperation
{
  @try {
   // long running operation
  } @catch
  {
   // if aborted just return
  }
}

-(void)cancelOperation
{
// raise an exception on a "listening" thread
}

对这种方法有什么想法吗?可能吗?

4

0 回答 0