Czy można używać async/await wewnątrz locka? Dlaczego?
C#
Dlaczego async void jest złym rozwiązaniem?
Jak środowisko wykonawcze rozpoznaje, że operacja asynchroniczna została zakończona i należy kontynuować pracę?
Co zostanie wyświetlone w konsoli? ```csharp public class Program { static void Main() { var myClassObj = new MyClass(); var myStructObj = new MyStruct(); MethodA(myClassObj.Num); // MethodB(myStructObj); MethodC(myClassObj); MethodD(myClassObj); Console.WriteLine(myClassObj.Num); // ? Console.WriteLine(myStructObj.Num); // ? } private static void MethodA(int num) { num = num + 1; } private static void MethodB(MyStruct myStruct) { myStruct.Num += 1; } private static void MethodC(MyClass myClass) { myClass.Num += 1; } private static void MethodD(MyClass myClass) { myClass = new MyClass(); } } ```
Czym jest struktura? Czy jest to typ wartościowy czy referencyjny? Gdzie jest przydzielana pamięć? Jakie są granice efektywnego korzystania ze struktur?
Czym są indeksy w bazie danych? Rodzaje indeksów (B-tree, Hash, Full-text). Indeks klastrowy vs nieklastrowy. Indeksy pokrywające.
Jakie sterty znasz oprócz głównego (SOH)? Opowiedz mi o Heapie Dużych Obiektów i Heapie Zakotwiczonych Obiektów.
Czym jest consistent hashing (konsystentne haszowanie)? Wirtualne shardy/buckety?
Zadanie z async/await: jak działa async/await? W co się rozwija? Jaka jest różnica między Task a ValueTask?
Zadanie z metodami wirtualnymi: co zostanie wyświetlone? Dla której metody jest więcej tików i dlaczego?
Czym są korzenie GC? Jakie są?
Na czym polega istota koncepcji pokoleń GC (0, 1, 2)? Co optymalizujemy?
Opowiedz o trybach pracy GC: serwerowym i desktopowym. Kiedy używać którego?
Czym jest ConfigureAwait(false)? Do czego służy? Czym jest kontekst synchronizacji?
Opowiedz o modyfikatorach parametrów ref, in, out i ich różnicach. Czym jest readonly ref i ref readonly?
SELECT * FROM t_sensor_data;
Przydzielono Ci zadanie przeglądu kodu od kolegi Jakie problemy widzisz w kodzie? ```csharp namespace SomeProject.Data { public class UserRepository { public Task SaveUser(User user, Dictionary<int,string> shards) { var shardIdx = user.Id % 3; var shardAddress = shards[shardIdx]; using(var shardService = new ShardService(shardAddress)) { return shardService.SaveUserAsync(user); } } } } ```
Zadanie z łańcuchami: co zostanie wyświetlone? Jak jest przeciążony operator == dla łańcuchów? Czym jest pula internowania łańcuchów?
Zadanie z LINQ: co zostanie wyświetlone? Jaki jest typ zmiennej query? W czym różni się IEnumerable od IQueryable?
Wyjaśnij, jak przydzielana jest pamięć na stosie i na stercie. Czy typy wartości zawsze umieszczane są na stosie?