У меня есть простой поток, который запускает бесконечный цикл. В конце концов, цикл будет проверять последовательные данные на USB-порту несколько тысяч раз в секунду, но в данный момент он просто записывает что-то в пользовательский класс NSTextView раз в секунду.
int i;
for (i=1; i>0; i++)
{
[lock lock];
[[self textStorage] replaceCharactersInRange:NSMakeRange([[self textStorage] length], 0) withString:@"test\n"];
[lock unlock];
sleep(1);
}
Проблема в том, что он пишет действительно спорадически. Это сделает один или два, затем подождите десять секунд и выплюнет десять из них одновременно. Если я заменю строку записи на NSLog(@"test")
, она будет записываться с хорошими четными интервалами. У меня есть другой метод тестирования в главном потоке, который принимает ввод в текстовое поле и помещает его в текстовое представление, и при этом кажется, что обновление текстового представления обновляет последние записи дочернего потока. В любом случае, в этот момент не должно быть ничего, что могло бы помешать этому, но я все заблокировал, чтобы быть уверенным. Заранее спасибо.