int i = 1; object obj = i; ++i; Console.WriteLine(i); Console.WriteLine(obj); Console.WriteLine((short)obj);
C#
Compito: Gli eventi vengono ricevuti dagli utenti, ognuno deve essere verificato in una fonte esterna, ma questa non risponde immediatamente. Implementa VerificationService che: - Accetta eventi dagli utenti - Cerca di verificare ciascuno contattando un servizio esterno - Se la risposta è PENDING, riprova a inviare questo evento non prima di 5 secondi - Massimo 3 tentativi, dopodiché l'ID dell'evento viene stampato in stdout con stato FAILED - Gli eventi elaborati con successo vengono stampati in stdout con stato VERIFIED I modelli e gli stub delle dipendenze esterne sono già implementati: 1. VerificationStatus 2. Event 3. VerificationResult 4. IExternalSource public enum VerificationStatus { OK, Pending, Error } public record Event(string Id, string Payload); public record VerificationResult(VerificationStatus Status, string? Message = null); public interface IExternalSource { VerificationResult Verify(string eventId); } public class VerificationService { private readonly IExternalSource _externalSource; private const int MaxAttempts = 3; private static readonly TimeSpan RetryDelay = TimeSpan.FromSeconds(5); public VerificationService(IExternalSource externalSource) { _externalSource = externalSource; } // TODO: implement }
public class A { public virtual void Print1() { System.Console.Write("A"); } public void Print2() { System.Console.Write("A"); } } public class B : A { public override void Print1() { System.Console.Write("B"); } } public class C : B { public new void Print2() { System.Console.Write("C"); } } static void Main(string[] args) { var c = new C(); A a = c; a.Print1(); a.Print2(); c.Print2(); } What will be in stdout?
Cosa succede quando si aspetta la prima attività completata con Task.WhenAny mentre altre attività sono ancora in esecuzione?
Cosa ha permesso di aumentare la capacità del servizio di replica da circa 300 a 700 messaggi al secondo? Come sono stati usati ConcurrentDictionary e SemaphoreSlim?
public struct S : IDisposable { private bool dispose; public void Dispose() { dispose = true; } public bool GetDispose() { return dispose; } } What will be in stdout?
Come organizzare l'attesa di nuovi eventi se la coda è vuota, e qual è la differenza tra Channel e ConcurrentQueue?
Quali sono i valori di Sum e Count?
Come limitare il grado di parallelismo durante l'elaborazione di un insieme di attività asincrone?
[nome] raccontaci di un compito o soluzione interessante nel tuo lavoro attuale o precedente che vorresti condividere.
Lista<Action> azioni = new List<Action>(); for (var count = 0; count < 10; count++) { azioni.Add(() => System.Console.WriteLine(count)); } foreach (var azione in azioni) { azione(); } Cosa ci sarà in stdout?