Sulla base di tutto ciò che ho letto, il seguente metodo di test dovrebbe passare. Sto cercando di capire perché fallisce. La prima affermazione nel metodo async privato passa come previsto. Tuttavia, una volta che l'attività viene restituita e in attesa. Il valore impostato in CallContext ora è nullo quando recuperato.I valori di CallContext logici non fluiscono utilizzando le attività asincrone
5
A
risposta
9
I metodi decorati con la parola chiave async
creano un contesto figlio quando vengono chiamati. Qualsiasi modifica apportata a questo contesto figlio non viene propagata al contesto padre.
Così, PerformSimpleAsyncWork
ottiene un contesto figlio che può vedere tutto ciò che è stato inserito nel contesto dal chiamante, ma le eventuali modifiche apportate non saranno disponibili per il chiamante (LogicalCallContextBlockingTest
).
Stephen Cleary ha un good writeup su questo comportamento se si desiderano ulteriori informazioni.
Problemi correlati
- 1. CallContext in WCF
- 2. Perché i test di unità asincrone falliscono quando le parole chiave asincrone/attese non vengono utilizzate?
- 3. Attività asincrone Perl per "qualsiasi" codice, non importa quale sia?
- 4. Attività asincrone e CPU associate a Python?
- 5. Pianifica più attività asincrone in Android
- 6. Posso fare affidamento su CallContext utilizzando l'API Web?
- 7. Test delle attività asincrone con robolectric
- 8. Come attendere il completamento di attività asincrone in scala?
- 9. Jedis supporta le operazioni asincrone
- 10. Utilizzo di operatori logici con le macro
- 11. Barriere asincrone in F #
- 12. Come eseguire correttamente più attività asincrone in parallelo?
- 13. chiamate asincrone looping
- 14. Pianificazione delle attività asincrone in PlayFramework 2.5.X (Java)
- 15. Le funzioni asincrone possono essere allineate?
- 16. Richieste Ajax asincrone parallele utilizzando jQuery
- 17. Dove gestisco le eccezioni asincrone?
- 18. Corretta traccia stack da Asp.Net Web Async Chiamate asincrone/attività
- 19. Le funzioni JavaScript sono asincrone?
- 20. logici e per i selettore Jquery
- 21. Come passare i valori da adattatore di attività
- 22. È possibile attendere attività asincrone durante un clic del pulsante?
- 23. Operatori logici AP Computer
- 24. Django e Celery: l'elenco delle attività di amministrazione non visualizza i valori
- 25. ZeroMQ: risposte asincrone
- 26. Come strutturare le attività di sedano
- 27. utilizzando i metodi di classe come attività di sedano
- 28. Limitare le chiamate asincrone in Node.js
- 29. Transizione di animazione tra le attività utilizzando FLAG_ACTIVITY_CLEAR_TOP
- 30. Come leggere i dati logici da un file in R
Impressionante, ho capito ora. Grazie! –