Просто добавьте флаг и установите его в false перед ручной прокруткой.
Не забудьте установить флаг в true в вашем обработчике прокрутки
private handleScroll = true;
@HostListener('scroll', ['$event'])
onScroll($event) {
if (!this.handleScroll) {
this.handleScroll = true;
return;
}
}
public manualScroller() {
this.handleScroll = false;
this.element.scrollTop = 100;
}
Cocoa Is My Girlfriend имеет хороший учебник по использованию NSOperation
и NSOperationQueue
. В руководстве используется NSOperation
для одновременной загрузки нескольких веб-страниц в отдельных потоках.
Также см. эту статью из Mac Research.
Способ, которым я использую его в своих приложениях для iPhone, заключается в том, чтобы в основном создать члена NSOperationQueue в моем делегате приложения и сделать его доступным через свойство. Затем каждый раз, когда мне нужно запустить что-то в фоновом режиме, например, загрузить какой-нибудь XML, я просто создаю NSInvocationOperation и отправляю его в очередь.
NSInvocationOperation *operationToPerform = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(updateXML) object:nil];
[[(MyAppDelegate *)[[UIApplication sharedApplication] delegate] sharedOperationQueue] addOperation:operationToPerform];
[op release];
Одним словом: NSOperationQueue
NSOperationQueue
является потокобезопасным (вы можете добавлять к нему операции из разных потоков без необходимости блокировок) и позволяет связывать NSOp объекты вместе.
Приложение My Flickr для iPhone, Reflections, широко использует NSOperation
и NSOperationQueue
для управления загрузкой изображений и XML
.
Предупреждение: убедитесь, что вы читаете, перечитываете и понимаете, что означают документы, когда они говорят о «параллелизме».