czasami funkcja GetBusType służaca do pobierania informacji o woluminie może zwisnąć na długie minuty - przykład, zamapowany dysk sieciowy którego teraz brak. Czy moge ubić taki wątek ThreadTerminate? Teoretycznie to nie w moim kodzie dochodzi do wstrzymania, ale co sie stanie gdy np. moje wywołanie ThreadTerminate odbędzie sie już poza funkcją GetBusType a w dalszym etapie synchronizacji z głównym wątkiem?
0
0
Generalnie nigdy nie powinno się ubijać wątków - poza aktualnym - niezależnie od pobudek.
„długie minuty” prędzej czy później przeminą, więc raczej zaprojektuj program tak, by nie blokowała go chwilowa zwiecha wątka, jeśli jesteś pewien, że tej zwiesze nie można zapobiec.
0
W WinApi nie ma takiej funkcji jak GetBusType tylko prawdopodonie znalazłeś lub napisałeś funkcję która to robi za pomocą CreateFile i DeviceIoControl. Jeżeli tak jest to wątek prawdopodobnie "wisi" DeviceIoControl a przecież w funkcji tej można ustawić TimeOut i po sprawie.
.
EDIT. A nie bo IOCTL_SET_TIMEOUT jest chyba tylko dla USB
0
kAzek masz racje ;)
wisi na CreateFile
0
czyli tu nie ma timeoutu :(
0
Pokaż kod.