У меня есть событие, которое во многих случаях запускается много раз, но я хочу, чтобы событие было завершено до запуска следующего события.
Я пытаюсь создать криптовалютного бота. Рассматриваемое событие private void CoinInformation_OnNewTradeEvent(object sender, AggregateTradeEventArgs e)
Поскольку это одиночное событие запускается несколько раз, я всегда думал, что оно будет выполнено синхронно, когда при выполнении одного события следующее событие не будет выполняться до тех пор, пока оно не будет завершено. Я пытался поставить замки, но понимаю, что это не работает.
private void CoinInformation_OnNewTradeEvent(object sender, AggregateTradeEventArgs e)
{
lock(myObject)
{
try
{
Decimal currentTradePrice = e.Trade.Price;
UpdateSMA(currentTradePrice);
TryBuy(currentTradePrice);
TrySell(currentTradePrice);
TryStopLoss(currentTradePrice);
}
catch
{
return;
}
}
}