← Zurück

Ошибка при запуску SampleHistoryTesting

Добрый день!

Пытаюсь разобраться в Вашем примере SampleHistoryTesting. Написал приложение на WindowsForm. Практически весь код взял из примера. Программа запускается, но когда нажимаю на кнопку "Старт", вылетает ошибка: <mark>"Инициализатор типа "Ecng.Trading.BusinessEntities.Exchange" выдал исключение." </mark> на объявлении переменно security <mark> // создаем тестовый инструмент, на котором будет производится тестирование var security = new Security { Id = "RIU9@RTS", // по идентификатору инструмента будет искаться папка с историческими маркет данными Code = "RIU9", Name = "RTS-9.09", MinStepSize = 5, MinStepPrice = 2, Decimals = 0, Exchange = Exchange.Test };</mark>

Ваш пример запускается успешно. Подскажите в чем проблема?

War dieses Thema hilfreich?

Thema teilen

Kommentare (5)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Mikhail Sukhov
Mikhail Sukhov

neighbour: Ваш пример запускается успешно. Подскажите в чем проблема?

Сложно ответить, вы же текст самого исключения не привели.

neighbour
neighbour
neighbour Autor

Верхняя ошибка именно такая. Когда нажимаешь View Detail: нашел такую ошибку

InnerException {"Инициализатор типа "Ecng.Common.Converter" выдал исключение."}

System.IO.FileNotFound {"Невозможно загрузить файл или сборку "PowerCollections, Version=1.0.2224.30206, Culture=neutral, PublicKeyToken=8d05ee679e87a45f" или один из зависимых от них компонентов. Не удается найти указанный файл.":"PowerCollections, Version=1.0.2224.30206, Culture=neutral, PublicKeyToken=8d05ee679e87a45f"}

Я не профи в C# поэтому подскажите где и что посмотреть если я не то нашел.

Заранее спасибо!!!

Alexander
Alexander

neighbour: Верхняя ошибка именно такая. Когда нажимаешь View Detail: нашел такую ошибку

InnerException {"Инициализатор типа "Ecng.Common.Converter" выдал исключение."}

System.IO.FileNotFound {"Невозможно загрузить файл или сборку "PowerCollections, Version=1.0.2224.30206, Culture=neutral, PublicKeyToken=8d05ee679e87a45f" или один из зависимых от них компонентов. Не удается найти указанный файл.":"PowerCollections, Version=1.0.2224.30206, Culture=neutral, PublicKeyToken=8d05ee679e87a45f"}

Я не профи в C# поэтому подскажите где и что посмотреть если я не то нашел.

Заранее спасибо!!!

<mark>System.IO.FileNotFound {"Невозможно загрузить файл или сборку "PowerCollections</mark>

добавьте PowerCollections в References проекта

neighbour
neighbour Autor

Господа, а вот еще вопрос. У вас используются методы this.GuiAsync. Как я понимаю это реализация многопоточности. Как это метод перенести на WindowsForm? Использовать делегаты?

Как пример можно рассматривать события обработки ITrader.Connected из примера SampleDdeCustomTable <mark>this.Trader.Connected += () => this.GuiAsync(() => { this.ShowCandles.IsEnabled = true; this.ExportDde.IsEnabled = true;

						_isConnected = true;
						this.ConnectBtn.Content = "Отключиться";
					});</mark>

Правильно ли я понимаю, что Trader запускается как новый поток где-то внутри сборки Ecng?

esper
esper

neighbour: Господа, а вот еще вопрос. У вас используются методы this.GuiAsync. Как я понимаю это реализация многопоточности. Как это метод перенести на WindowsForm? Использовать делегаты?

Как пример можно рассматривать события обработки ITrader.Connected из примера SampleDdeCustomTable <mark>this.Trader.Connected += () => this.GuiAsync(() => { this.ShowCandles.IsEnabled = true; this.ExportDde.IsEnabled = true;

  					_isConnected = true;
  					this.ConnectBtn.Content = "Отключиться";
  				});</mark>

Правильно ли я понимаю, что Trader запускается как новый поток где-то внутри сборки Ecng?

На WinForms можно сделать примерно так, вспомогательный класс:


public static class GuiHelper
{
    public static void GuiAsync(this Control control, Action action)
    {
        if (control.InvokeRequired)
        {
            control.BeginInvoke(action);
        }
        else
        {
            action();
        }
    }
}

вызов:

this.GuiAsync(() => Text = "проверка");