Проблема повторного входа в событие. Одновременно происходит одно и то же событие - PullRequest
0 голосов
/ 11 марта 2019

У меня есть событие, которое во многих случаях запускается много раз, но я хочу, чтобы событие было завершено до запуска следующего события.

Я пытаюсь создать криптовалютного бота. Рассматриваемое событие 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;
            }


        }

    }

1 Ответ

0 голосов
/ 18 марта 2019

Извините, похоже, что мои TryBuy и TrySell были асинхронными, и я их не ожидал, поэтому были повторные входы.

...