Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    11

    [vb.net]Thread.sleep....mi addormenta pure i figli?

    Domandona:

    In un progetto faccio abbondante uso del multithread.

    Visto che ogni nuovo thread fa delle operazioni su alcuni file e sul db anche abbstanza pesanti ho dovuto inserire un limitatore e mi sono inventato un lavoro del genere:


    codice:
    While Process.GetCurrentProcess.Threads.Count > 100
               Debug.Print("THREADCOUNT: " & Process.GetCurrentProcess.Threads.Count)
    End While
    
    ReDim Preserve Th(UBound(Th) + 1)
    Th(UBound(Th)) = New Threading.Thread(AddressOf ExecuteThread)
    Th(UBound(Th)).Start(S)
    Il tutto funziona decentemente...ora però vorrei un attimino ottimizzarlo inserendo nel ciclo while un Thread.CurrentThread.Sleep(100)....giusto per evitare sprechi inutili di cpu.

    La domanda però è questa: il thread.sleep mi freeza solo il thread corrente o anche tutti gli altri thread che ho aperto?

    p.s.
    Se per caso avete soluzioni migliori per impostare il massimo numero di thread che girano contemporaneamente fatevi avanti.

  2. #2
    http://msdn.microsoft.com/it-it/libr...8VS.80%29.aspx

    dice che sospende il thread corrente, ma non parla di figli.. fai delle prove e guarda cosa succede
    ChromeOS.eu tutto su Chrome OS!
    HTML5 Answer Il 3D nel browser è arrivato! Sviluppa la tua app 3D per il browser!

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970

    Re: [vb.net]Thread.sleep....mi addormenta pure i figli?

    Visto che ogni nuovo thread fa delle operazioni su alcuni file e sul db anche abbstanza pesanti ho dovuto inserire un limitatore....
    Un limitatore nel numero dei Thread o un limitatore delle risorse della CPU?
    Non si capisce bene quello che vuoi.

    codice:
    While Process.GetCurrentProcess.Threads.Count > 100
               Debug.Print("THREADCOUNT: " & Process.GetCurrentProcess.Threads.Count)
    End While
    E seconde te un processo con 100 Thread ,pesanti come dici tu, gira correttamente??

    Il tutto funziona decentemente...ora però vorrei un attimino ottimizzarlo inserendo nel ciclo while un Thread.CurrentThread.Sleep(100)....giusto per evitare sprechi inutili di cpu.

    La domanda però è questa: il thread.sleep mi freeza solo il thread corrente o anche tutti gli altri thread che ho aperto?
    Mi sembra che il nome del metodo sia abbastanza esplicativo.
    Sbagliare è umano, perseverare è diabolico.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    11

    Re: Re: [vb.net]Thread.sleep....mi addormenta pure i figli?

    Originariamente inviato da Pirelli72
    Un limitatore nel numero dei Thread o un limitatore delle risorse della CPU?
    Non si capisce bene quello che vuoi.

    codice:
    While Process.GetCurrentProcess.Threads.Count > 100
               Debug.Print("THREADCOUNT: " & Process.GetCurrentProcess.Threads.Count)
    End While
    quel While Process.GetCurrentProcess.Threads.Count > 100 a cosa ti fa pensare? ad un limite nel numero dei thread o delle risorse della cpu?

    E seconde te un processo con 100 Thread ,pesanti come dici tu, gira correttamente??
    certo, gira perfettamente. è sql che fatica a stargli dietro.


    Mi sembra che il nome del metodo sia abbastanza esplicativo.
    questa è l'unica parte interessante della tua risposta (ma neanche troppo): immagino ti riferisca al CurrentThread. In tal caso mi piacerebbe avere qualche elemento in più e non basarmi sul nome del metodo.

    Comunque sì morocarlo....in effetti basta fare due prove.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Comunque sì morocarlo....in effetti basta fare due prove.
    E sì, bisognava aprire un thread per fare due prove!
    Sbagliare è umano, perseverare è diabolico.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.