Как создать поток, в котоком будет выполняться фоновая функция? - VB

Узнай цену своей работы

Формулировка задачи:

Помогите, пожалуйста создать поток, в котоком будет выполняться фоновая функция (в моем случае копирование файла но сети (RAS - соединение)). Если у кого есть какой-нибудь исходничек, буду благодарен. А то я уже запарился. Делаю все как написано и ничего не пашет, или вываливаются ошибки. Работал с потоками в VC++, никаких проблем, а тут... Спасибо. removed@mail.ru

Решение задачи: «Как создать поток, в котоком будет выполняться фоновая функция?»

textual
Листинг программы
Option Explicit
' Общесистемные оболочки для работы  с API
Public Type nyExecCmd
 proc As PROCESS_INFORMATION
 WaitTimeExpired As Boolean
 ResetWaitTimeExpired As Boolean
 ProcExitCode As Long
End Type
' Пускатель программ с ожиданием завершения
Public Function ExecCmd(cmdline$, _
               Optional DefaultDir As String = '', _
               Optional flShow As VbAppWinStyle = vbHide, _
               Optional KillWinClass As String = vbNullString, _
               Optional KillWinCaption As String = vbNullString, _
               Optional ByVal WaitTime As Long = 0, _
               Optional ByVal ResetWaitTime As Long = 3600000, _
               Optional ByVal TerminateOnBadWindow As Boolean = True, _
               Optional ByVal TerminateOnWaitTime As Boolean = True) As nyExecCmd
' DefaultDir - каталог и диск по умолчанию для запускаемого приложения
' flShow     - флаг вида окна при запуске
' KillWinClass,KillWinCaption - если не vbNullString, заставляют при их появлении
' в запущенном приложении убивать их (анализ - каждые 5 сек)
' Пример плохого окна в tbView утилите : 'Nastala chyba:'
'  Они могут задаваться с разделителем vbCrLf - тогда это означает целый массив
'  заказанных на закрытие окон, при этом число элементов в обоих строках должно совпадать!
' WaitTime  -1 - не ждать окончания запущенного процесса,( в функции важны при этом proc,ProcExitCode ),
'                TerminateProcess здесь,конечно, не делается ( об TerminateProcess должна побеспокоиться вызывающая процедура ) ;
'          > 0 - ждать окончания не более чем WaitTime ms и не более чем ResetWaitTime ms
'                Если время истекло а процесс не закончился, в ExecCmd.WaitTimeExpired
'                возвращается True ( см. TerminateOnWaitTime ) ;
'            0 - ждать окончания бесконечно , но не молее чем ResetWaitTime ms .
' ResetWaitTime  >0 - глобальное время (ms) ожидания окончания процесса, по истечении
'                 которого процесс снимается (см. TerminateOnWaitTime).
'               = 0 - оно игнорируется.
'                 Если время истекло а процесс не закончился в ExecCmd.ResetWaitTimeExpired
'                 возвращается True, см. TerminateOnWaitTime.
' TerminateOnBadWindow = True - сорвать процесс при возникновении плохих окон , при этом событии
'                        в функции вернется proc.hProcess =0
'                      = Fasle - при возникновении плохих окон снять их и дать процессу продолжиться.
' TerminateOnWaitTime = True  - сорвать процесс при исчерпании времен ожидания и CloseHandle тоже,
'                        при этом событии в функции вернется proc.hProcess =0
'                     = False - при исчерпании времен ожидания выйти, не срывая процесс с его proc в функции.
' Возврат в функции : ( proc,WaitTimeExpired,ResetWaitTimeExpired,ProcExitCode )
' .proc.hProcess > 0 - при удачом запуске и несрывании путем TerminateProcess,CloseHandle (см. TerminateOnBadWindow,TerminateOnWaitTime )
'                                       ( или при самостоятельном завершении процесса ).
'                = 0 - иначе.
' .ProcExitCode - код завершения процесса при любой ситуации .proc.hProcess.
' .WaitTimeExpired,.ResetWaitTimeExpired - признаки , что было исчерпание времен
    endMessage hwnd, WM_ENDSESSION, 0&, 0& ' Это команда окну честно закрыться.
   'SendMessage hwnd, WM_QUERYENDSESSION, 0&, 0& ' Это команда окну честно закрыться.
   nyCloseWindows = True
  End If
 Loop Until hWnd = 0
Next i
 
End Function ' nyCloseWindows -->>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы