PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » WinAPI и MultiTreads


WinAPI и MultiTreads

Сообщений 1 страница 2 из 2

1

как узнать - можно ли вызывать заданные функции WinAPI в параллельных потоках без синхронизации

например функция SendARP

При однопоточном сканировании все проходит без отказов но заметно-долгое время.

вызов такой

If SendARP_(inet_addr_(IP), 0, @MacAddr(0), @n) = #NO_ERROR
..............................
EndIf

попытка распараллелить   запросы потерпела неудачу

подозревается затык при вызове этой функции в некоторых потоках

0

2

Может в коде ошибка?

Этот код нормально работает в многопоточном режиме.

Код:
Procedure Th(*x)
  Dim MacAddr.l(100)
  IP.s="192.168.1.1"
  
  Repeat
    n=400
    If SendARP_(inet_addr_(IP), 0, @MacAddr(), @n) <> #NO_ERROR
      Debug "Err"
    EndIf
  ForEver
  
EndProcedure

For i=1 To 10
  CreateThread(@Th(), 0)
Next i

MessageRequester("", "")

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » WinAPI и MultiTreads