Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    69

    [C#] Threading (funzioni obsolete)

    Sto facendo alcune prove con il threading in .Net in C#. Non capisco perchè le funzioni suspend() e resume() sono marcata "deprecated". Come linea guida msdn (e anche il debugger di Visual Studio) indica di "utilizzare altre strutture per la sincronizzazione dei thread, come Monitor, Semafori e Mutex".
    Ma che c'entrano monitor & co. con il fatto di sospendere e riavviare un thread? Perchè dovrei scomodare queste strutture tipicamente per la concorrenza?

    Tra l'altro parallelamente notavo che come struttura principe per il threading viene consigliato il BackgroundWorker che però fornisce solo i metodi per avviare e abortire un thread. Niente suspend e resume.

    Sono perplesso.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Forse sono indicati come "deprecated" SE usati per effettuare una sincronizzazione tra thread (per cui viene suggerita la corretta strada).

    Dove l'hai letto?

    P.S. Questo NON e' il forum giusto per C# ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    69
    Originariamente inviato da oregon
    Forse sono indicati come "deprecated" SE usati per effettuare una sincronizzazione tra thread (per cui viene suggerita la corretta strada).

    Dove l'hai letto?

    P.S. Questo NON e' il forum giusto per C# ...
    L'ho letto... sul debugger di Visual Studio! Nonché su msdn... beh insomma in fase di debug stessa, usando queste funzioni (suspend() e resume()), vengono generati warning indicando che le due funzioni sono deprecate e si consiglia l'uso di monitro & co.

    Non è il forum giusto? Scusate pensavo fosse di programmazione generale... non ho visto una sezione per C#...

  4. #4
    Do not use the Suspend and Resume methods to synchronize the activities of threads. You have no way of knowing what code a thread is executing when you suspend it. If you suspend a thread while it holds locks during a security permission evaluation, other threads in the AppDomain might be blocked. If you suspend a thread while it is executing a class constructor, other threads in the AppDomain that attempt to use that class are blocked. Deadlocks can occur very easily.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    69
    Ah scusate ho notato ora la sezione .Net... pardon. Magari spostate il thread. grazie

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.