Язык программирования C#
На некоторых олимпиадах по программированию используют язык C#. Примеры: олимпиада МАИ по программированию.
В олимпиадах на TopCoder сейчас разрешены: C++, Java, C# и VB.NET.
Многопоточность
Финализатор C#
Финализатор - это метод класса, который автоматически вызывается средой исполнения в промежутке времени между моментом, когда объект этого класса опознаётся сборщиком мусора как неиспользуемый, и моментом удаления объекта (освобождения занимаемой им памяти). Финализатор для конкретного объекта всегда выполняется после того, как программа прекращает использовать данный объект и до того, как занимаемая объектом память будет освобождена сборщиком мусора. Удобно считать, что финализатор вызывается непосредственно перед удалением объекта из памяти, хотя это обычно не гарантируется.
lock
class Account {
decimal balance;
private Object thisLock = new Object();
public void Withdraw(decimal amount) {
lock (thisLock) {
if (amount > balance) {
throw new Exception("Insufficient funds");
}
balance -= amount;
}
}
}
Ключевое слово lock не позволит одному потоку войти в важный раздел кода в тот момент, когда в нем находится другой поток. При попытке входа другого потока в заблокированный код потребуется дождаться снятия блокировки объекта.
Блокировка потоков. lock.. . Синхронизация потоков. Синхронизация процессов.