Страница: 1 |
Страница: 1 |
Вопрос: 3 вопроса по ворду.
Добавлено: 06.10.08 09:40
Автор вопроса: samets
Надо:
1. Сделать так, чтобы «фоновый режим» активировался. То есть, чтобы условие он проверял бесконечно, пока оно не будет верным. И так, чтобы была возможность работать с вордом. Пробовал бесконечный цикл:
Sub blablabla()
Do while Условие = Неверно
DoEvents
Loop
Но не катит - процессор двухъядерный занят на 100%. Начинает виснуть;
2. Сделать так, чтоб при запуске ворда моя программа запускалась не сразу, а когда документ загрузится, а не как в autoexec. Autoopen не предлагать! Нужно, чтобы это происходило и при запуске ворда через пуск!
3. Как сделать так, чтобы при перемещения курсора или при напечатании символа сразу удалялась текущая строка.
Ну вот и все вопросы.
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
Jasmin
Вопросов: 23
Ответов: 417
Профиль | | #1
Добавлено: 06.10.08 11:30
2: Записать макрос в Normal.dot ?
Номер ответа: 2
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #2
Добавлено: 06.10.08 16:48
Расскажи как ты занял двухъядерный процессор на 100%?
Я как ни стараюсь, но монопоточное приложение всегда дает загрузку примерно по 50% на каждом ядре (по понятным, я думаю, причинам)
Номер ответа: 3
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #3
Добавлено: 07.10.08 09:46
Steel Brand, не знаю как для Intell, а для AMD мне встречался драйвер, который распределяет нагрузку приложений по нескольким ядрам якобы для оптимизации производительности (сам с ним дел не имел, т.к. работаю всегда на Intell). Как это работает - не представляю. Но ведь работает.
Номер ответа: 4
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #4
Добавлено: 07.10.08 17:14
Я не представляю себе как можно одновременно выполнять один и тот же поток на разных ядрах
2 ядра подгружаются на 50%, потому что планировщик задач периодически кидает поток то на первое, то на второе ядро.
Какой бы там драйвер ни был, корректно разбить поток на в ядра ИМХО нереально - просто запаришься с синхронизацией.
Номер ответа: 5
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #5
Добавлено: 08.10.08 10:23
про предсказание переходов слышал? вот скорее всего на этом уровне или что-то подобное. больше ядер - больше переходов досрочно просчитаны с верным предсказанием. на современных процессорах вычисления выполняются нелинейно во времени, т.е. каждая последующая инструкция не всегда не ждет, пока будет выполнена предыдущая, иногда она может быть просчитана ранее. эта идея продвигалась при создании конвейеров в p6, над подобными проблеммами до сих пор бьются создатели многоядерников. недаром наверное производители процессоров постоянно придумывают новые архитектуры, есть над чем работать. кстати, новые камешки Intell Atom лишены предсказаний переходов и подобных наворотов, из-за чего и удалось так удачно снизить их цену.
Номер ответа: 6
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #6
Добавлено: 08.10.08 10:26
драйвер amd возможно делает что-то подобное, только с кусками кода побольше, чем несколько опкодов.
Номер ответа: 7
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #7
Добавлено: 10.10.08 21:53
Кто в теме может прокомментировать?
Насколько я понимаю архитектуру процессора, все про что написал пан mc-black выполняется только в пределах одного ядра.
Intel Core 2 тоже лишены этих предсказаний и наворотов?
Номер ответа: 8
Автор ответа:
samets
Вопросов: 14
Ответов: 27
Профиль | | #8
Добавлено: 11.10.08 06:53
Я че, задал вопрос про процессор? Я попоросил ответить на другие три вопроса!!! Не отходите от темы!
Номер ответа: 9
Автор ответа:
samets
Вопросов: 14
Ответов: 27
Профиль | | #9
Добавлено: 11.10.08 06:54
Номер ответа: 10
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #10
Добавлено: 12.10.08 14:51
Удобнее для 3-х вопросов заводить 3 темы. Извини, что я не в тему.
Номер ответа: 11
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #11
Добавлено: 13.10.08 10:07
1. Что именно тебе надо проверять в бесконечном цикле? Обычно создается отдельный поток для выполнения задач в фоновом режиме, но может все-таки в Word можно обойтись отловом каких-то событий или что-то другим. В Win32 API есть функции, такие как WaitForSingleObject и WaitForMultipleObjects, которые иногда рекомендуется применять в местах, где может напрашиваться бесконечное ожидание чего-нибудь. Опиши, что за условие проверяется в твоем цикле, зачем это делается, ну и желательно твой участок кода.
2. Событие Document_Open() тебя не устроит?
3. Не знаю. А для чего это требуется?