Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    577

    [c++] abortire la InternetOpenUrl

    ciao,
    capita con siti piuttosto lenti che la InternetOpenUrl() spenda parecchio tempo prima di ottenere dati da un sito remoto. esiste un modo per farla abortire dopo 5 secondi?


    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    577
    scusate ma ho risolto, è stato sufficiente inizializzare un timer dove ogni t secondi chiude gli handle relativi alle funzioni di inizio connessione e trasferimento file dal server

    di sicuro non e' un metodo pulito, se trovate di meglio, grazie
    Ultima modifica di misterx; 11-03-2015 a 22:51

  3. #3
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Non credo sia il modo giusto. Ti conviene fare una chiamata asincrona (vedi il flag INTERNET_FLAG_ASYNC)
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    577
    ti ringrazio ma la documentazione necessaria è pressoche introvabile per usare la IntenetOpen() in modo asincrono a parte quello che viene spiegato in questo link che lascio a chi potrebbe avere la necessità di approfondire http://www.codeproject.com/Articles/...l-Asynchronous

  5. #5
    La documentazione è lì su MSDN, la semantica mi sembra la stessa della maggior parte delle API asincrone... se specifichi il flag INTERNET_FLAG_ASYNC semplicemente la InternetReadFile, se non ha dati da restituire, fallisce con GetLastError()==ERROR_IO_PENDING. Un modo semplice per gestire la cosa può essere andare in polling su InternetReadFile, riprovando ogni 100 msec se ancora non sei riuscito a leggere tutto e se non si è esaurito il timeout.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.