Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
09.03.2005, 07:45
|
|||
|---|---|---|---|
(vfp) different process |
|||
|
#18+
Уважаемые!!! У фокса есть проблема(по-моему)- она(лиса) не умеет делать несколько процессов(т.е. запускать отдельный процесс из одного своего приложения). Задача. Есть приложение, а вней процедуры, которые выполняются долго. Когда запускается эта процедура, все приложения ждет окончания. Хотелось бы, чтобы пользователь пока пользовался другими возможностями приложения. И еще, чтобы эта процедура могла в нужный ей момент спросить пользователя кое о чем(callback вызовы в С++). Как вы деумаете эта задача решится через фоксовские com (предварительно приготовленные)? Com будет сидеть на том же стеке? (т.е. in-process или out-process).... Короче, вы меня поняли... Почему до сих пор нет этого в фоксе (у меня VFP9)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2005, 00:20
|
|||
|---|---|---|---|
|
|||
(vfp) different process |
|||
|
#18+
Hi Ilhom_uz! http://www.geocities.com/rremus/multithreaded_vfp.htm Это по потокам. А процессы разные он и так может создавать - по !/RUN, ShellExecute, CreateProcess и т.п. И общаться с ними через NamedPipes например... Хотя многоПРОЦЕССНЫХ приложения я не встречал, вот многопоточных - тех хватает. Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2005, 07:29
|
|||
|---|---|---|---|
(vfp) different process |
|||
|
#18+
Уважаемый Игорь Королев Вы не могли бы подробней описать шаги работы с namedpipe (т.е. кодоа никакого не неадо, просто шаги). Опишите принцип работы через namedpipe. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.03.2005, 01:40
|
|||
|---|---|---|---|
|
|||
(vfp) different process |
|||
|
#18+
Hi Ilhom_uz! Не ломает описывать - почитай MSDN там много всего есть интересного и полезного. А вот пример (код т.е.) наоборот имеется: =========Beginning of the Pipe Server.prg============== #DEFINE STANDARD_RIGHTS_REQUIRED 0xF0000 #DEFINE PIPE_ACCESS_OUTBOUND 0x00000002 #DEFINE FILE_FLAG_OVERLAPPED 0x40000000 #DEFINE PIPE_TYPE_BYTE 0x00000000 #DEFINE ERROR_PIPE_CONNECTED 535 DECLARE INTEGER GetLastError IN kernel32 DECLARE INTEGER CreateNamedPipe IN kernel32; STRING lpName, INTEGER dwOpenMode, INTEGER dwPipeMode,; INTEGER nMaxInstances, INTEGER nOutBufferSize, INTEGER nInBufferSize,; INTEGER nDefaultTimeOut, INTEGER DECLARE INTEGER ConnectNamedPipe IN kernel32; INTEGER hNamedPipe, INTEGER lpOverlapped DECLARE INTEGER CloseHandle IN kernel32 INTEGER hObject DECLARE INTEGER WriteFile IN kernel32 INTEGER hFile,; STRING lpBuffer, INTEGER nBt2Write, INTEGER @ lpBtWritten, INTEGER lpOverlapped pipehnd = CreateNamedPipe("\\.\pipe\PPing", PIPE_ACCESS_OUTBOUND, PIPE_TYPE_BYTE, 1, 0, 0, 0, 0) If pipehnd = 0 = CloseHandle(pipehnd) MESSAGEBOX("Error1") CLEAR DLLS RETURN ENDIF m.res = ConnectNamedPipe(pipehnd, 0) If m.res <> 0 .Or. (res = 0 And GetLastError() = ERROR_PIPE_CONNECTED) m.buffer = ALLTRIM(STR(100)) && на будущее m.lenbuf = LEN(m.buffer) m.written = 0 m.res = WriteFile(pipehnd, m.buffer, m.lenbuf, @m.written, 0) ? m.written Else = CloseHandle(pipehnd) MESSAGEBOX("Error2") CLEAR DLLS RETURN ENDIF MESSAGEBOX("Ok!") = CloseHandle(pipehnd) CLEAR DLLS =========The end of the Pipe Server.prg================ =========Beginning of the Pipe Client.prg============== DECLARE INTEGER CreateFile IN WIN32API ; STRING, INTEGER, INTEGER, INTEGER, ; INTEGER, INTEGER, INTEGER DECLARE INTEGER ReadFile IN WIN32API ; INTEGER, STRING @, INTEGER, INTEGER @, INTEGER DECLARE INTEGER CloseHandle IN WIN32API INTEGER #DEFINE GENERIC_READ 0x80000000 #DEFINE OPEN_EXISTING 3 lnHandle = CreateFile("\\.\pipe\PPing", GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0) IF m.lnhandle = 0 MESSAGEBOX("Can't open pipe") RETURN .F. ENDIF lcBuf = SPACE(255) lnRead = 0 IF ReadFile(m.lnHandle, @m.lcBuf, LEN(m.lcBuf), @m.lnRead, 0) = 0 MESSAGEBOX("No data in pipe") CloseHandle(m.lnHandle) RETURN .F. ENDIF MESSAGEBOX(TRANSFORM(m.lnRead) + " bytes read from the pipe" + CHR(13) + ; "Read data follows:" + LEFT(m.lcBuf, m.lnRead)) CloseHandle(m.lnHandle) RETURN .T. =========The end of the Pipe Client.prg================ Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.03.2005, 06:49
|
|||
|---|---|---|---|
(vfp) different process |
|||
|
#18+
Игорь Королев!!! Просто нет слов. Все предельно ясно. Теперь можно изучать про pipe, потому что ясно для чего оно нужно... Один вопрос: После перезагрузки компа, pipe исчезнет?Т.е. сервер поместил инфу в pipe и комп перезагрузили... > Хотя многоПРОЦЕССНЫХ приложения я не встречал, вот многопоточных - тех хватает. А в фоксе это(открыть поток) можно проделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.03.2005, 07:49
|
|||
|---|---|---|---|
(vfp) different process |
|||
|
#18+
Еше один поток для интерпретатора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.03.2005, 03:36
|
|||
|---|---|---|---|
|
|||
(vfp) different process |
|||
|
#18+
Hi Ilhom_uz! > Один вопрос: После перезагрузки компа, pipe исчезнет? Pipe это временный ресурс - он не только при перезагрузке исчезнет, он заметно раньше исчезнет :) > А в фоксе это(открыть поток) можно проделать? См. первое сообщение и инфу по линку. Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=41&mobile=1&tid=1594667]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 397ms |

| 0 / 0 |
