Откройте окно терминала для указанной папки из приложения Какао

Вы не можете оценить его. Необходимо измерить его. И это собирается варьироваться в зависимости от процессора по устройству.

существует два довольно простых способа измерить контекстное переключение. Каждый включает код, другой не делает.

Первый, код путем (псевдокод):

DWORD tick;

main()
{
  HANDLE hThread = CreateThread(..., ThreadProc, CREATE_SUSPENDED, ...);
  tick = QueryPerformanceCounter();
  CeSetThreadPriority(hThread, 10); // real high
  ResumeThread(hThread);
  Sleep(10);
}

ThreadProc()
{
  tick = QueryPerformanceCounter() - tick;
  RETAILMSG(TRUE, (_T("ET: %i\r\n"), tick));
}

, Очевидно, выполнение его в цикле и усреднении будет лучше. Следует иметь в виду, что это только измеряет контекстное переключение. Вы также измеряете вызов к ResumeThread и нет никакой гарантии, которую планировщик собирается сразу переключить на Ваш другой поток (хотя приоритет 10 должен помочь увеличить разногласия, что это будет).

можно получить более точное измерение с CeLog путем сцепления в события планировщика, но совсем не просто сделать и не очень хорошо зарегистрированное. Если Вы действительно хотите пойти тем путем, у Sue Loh есть несколько блогов на нем, которые может найти поисковая система.

маршрут некода должен был бы использовать Удаленное Средство отслеживания Ядра. eVC 4.0 установки или версия оценки Platform Builder для получения его. Это даст графический дисплей всего, что ядро делает, и можно непосредственно измерить контекстное переключение потока с обеспеченными возможностями курсора. Снова, я уверен, что у Sue есть запись в блоге при использовании Средства отслеживания Ядра также.

Однако Вы собираетесь найти, что контекстные переключения потока внутрипроцесса CE действительно, действительно быстро. Это - переключатели процесса, которые являются дорогими, поскольку это требует свопинга активного процесса в RAM и затем выполнения миграции.

9
задан Corey Floyd 18 September 2009 в 20:57
поделиться

4 ответа

Вы можете использовать AppleScript из Какао следующим образом:

NSString *s = [NSString stringWithFormat:
     @"tell application \"Terminal\" to do script \"cd %@\"", folderPath];

NSAppleScript *as = [[NSAppleScript alloc] initWithSource: s];
[as executeAndReturnError:nil];

Сценарий AppleScript был взят из cobbal. Спасибо, дружище!

14
ответ дан 4 December 2019 в 13:03
поделиться

Не уверен, есть ли способ сделать это в обычном какао, но в Applescript это довольно тривиально

tell application "Terminal" to do script "cd ~/Desktop"
2
ответ дан 4 December 2019 в 13:03
поделиться

Я действительно не знаю AppleScript, но держу пари, вы могли бы использовать его для этого.

Если каталог терминала каждый раз один и тот же, вы можете просто создать исполняемый файл .sh с командой cd в нем и сделать так, чтобы аргумент openFile .

0
ответ дан 4 December 2019 в 13:03
поделиться

Существующие ответы, предлагающие использовать команду cd , великолепны. Кроме того, я рекомендую проверить исходный код приложения cdto для отличного примера. Cdto - это быстрое мини-приложение, которое открывает окно Terminal.app cd'd в самое переднее окно поиска. Это приложение разработано (включая его значок) для размещения на панели инструментов окна поиска.

0
ответ дан 4 December 2019 в 13:03
поделиться