Գործառույթ: Օգտագործողներից ստացվող իրադարձությունները, յուրաքանչյուրն անհրաժեշտ է ստուգել արտաքին աղբյուրում, բայց դա անմիջապես պատասխան չի տալիս: Իմպլեմենտացեք VerificationService, որը: - Ստանում է իրադարձություններ օգտագործողներից - Փորձում է ստուգել յուրաքանչյուրին կապվելով արտաքին ծառայության հետ - Եթե պատասխանն է PENDING, կրկին ուղարկում է այս իրադարձությունը ոչ շուտ քան 5 վայրկյան - Առավելագույնը 3 փորձ, հետո իրադարձության ID-ն արտածվում է stdout- ում FAILED կարգավիճակով - Հաջողությամբ մշակված իրադարձությունները արտածվում են stdout- ում VERIFIED կարգավիճակով Արտաքին կախվածությունների ձևանմուշներն ու սթաբները արդեն իրականացված են: 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 }
C#
Ի՞նչն է հնարավորություն տվել ռեպլիկացիայի ծառայության throughput-ը մոտ 300-ից հասնելով 700 հաղորդագրության։ Ինչպես օգտագործվեցին ConcurrentDictionary և SemaphoreSlim։
int i = 1; object obj = i; ++i; Console.WriteLine(i); Console.WriteLine(obj); Console.WriteLine((short)obj);
Action-ների ցանկը = նոր List<Action>(); յուրաքանչյուր 10 կրկնության համար { Action-ները ավելացրեք () => System.Console.WriteLine(count); } յուրաքանչյուր Action-ի համար { Action(); } Ի՞նչ կլինի stdout-ում։
Ինչ են Sum և Count արժեքները։
Ինչ է տեղի ունենում, երբ սպասում ենք առաջին ավարտված գործին Task.WhenAny-ով, մինչդեռ մյուս գործերը դեռ աշխատում են?
Ինչպես կազմակերպել նոր իրադարձությունների սպասումը, եթե հերթը դատարկ է, և ինչ է տարբերությունը Channel և ConcurrentQueue միջև?
Ինչպես սահմանափակել համաժամանակյա գործերի քանակը, երբ մշակվում է ասինխրոն գործերի հավաքածու?
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(); } stdout-да эмне болот?
public struct S : IDisposable { private bool dispose; public void Dispose() { dispose = true; } public bool GetDispose() { return dispose; } } Ի՞նչ կլինի stdout-ում։
[անուն] պատմիր մեզ հետաքրքիր առաջադրանքի կամ լուծման մասին քո ներկայիս կամ նախորդ աշխատանքի վայրից, որը ցանկանում ես կիսել։