Подключение к Quik и запуск DDE
Atom
24.01.2011
vvt


Пробую подключение к Quik и запуск DDE из примеров (Sample, SampleSMA). Все происходит очень медленно, поискал по форуму, есть несколько сообщений с такими же проблемами. Железо вроде не самое слабое (Phenom II X2 555/8Gb/SSD), система Windows 7 Ultimate 64bit. Запускаются Quik и примеры от имени администратора. Хотелось бы все-таки с помощью Михаила докопаться до возможных причин таких тормозов.

В связи с этим первый вопрос: после установки соединения с Квиком через QuikTrader.Connect() и поступления события Connected секунд где-то через 10 в Квике появляется окно "Выбор активных счетов и задание их очередности", которое висит и пропадает где-то через 30 секунд. Так и должно быть?

Вот код этого консольного приложения:

			Console.WriteLine("Запуск...");

			try
			{
				var waitHandle = new AutoResetEvent(false);

				// создаем шлюз к Quik-у
				var trader = new QuikTrader(@"C:\FinamJunior\info.exe");

				// подписываемся на событие успешного подключения
				// все действия необходимо производить только после подключения
				trader.Connected += () =>
				{
					Console.WriteLine("Подключение было произведено успешно.");

					// извещаем об успешном соединени
					waitHandle.Set();
				};

				Console.WriteLine("Производим подключение...");

				trader.Connect();

				// дожидаемся события об успешном соединении
				waitHandle.WaitOne();
				Console.ReadKey();

				trader.Dispose();
			}
			catch (Exception ex)
			{
				Console.WriteLine(ex);
				Console.ReadKey();
			}


Теги:


Спасибо:


<< < 4 5 6 
Артем_2

Фотография
Дата: 18.07.2011
Ответить


Я не сразу допер... С новым предикатом ведь совсем все замечательно!!![drool]

Спасибо:

esper

Фотография
Дата: 18.07.2011
Ответить


Александр, можете попробовать собрать проект с такой вот функцией GetQuikWindows:

[DllImport("user32.dll", SetLastError = true)]
static extern int GetWindowThreadProcessId(IntPtr hWnd, out int lpdwProcessId);

static int GetProcessId(IntPtr hwnd)
{
	int pid;
	GetWindowThreadProcessId(hwnd, out pid);
	return pid;
}

private static IEnumerable<SystemWindow> GetQuikWindows(Process process)
{
	if (process == null)
		throw new ArgumentNullException("process");

	return SystemWindow.FilterToplevelWindows(q => GetProcessId(q.HWnd) == process.Id);
}
Спасибо: Артем_2 Den

Артем_2

Фотография
Дата: 18.07.2011
Ответить


Получилось чего-нить?

Спасибо:

Alexander

Фотография
Дата: 18.07.2011
Ответить


На моей машине (Win 7) стало запускаться раз в 10 быстрее - я банально даже не успеваю просмотреть окошки. Вы большие молодцы, спасибо! [thumbup]

После закрытия основной сессии протестирую с 7 копиями квиков.

Спасибо:

Alexander

Фотография
Дата: 18.07.2011
Ответить


Exception возник при остановке экспорта. Буду разбираться.

В любом случае - запуск \ остановка стала на порядки быстрее :)

Спасибо:

Артем_2

Фотография
Дата: 19.07.2011
Ответить


Урааа![biggrin] Отдельное спасибо esper!

Спасибо:

Alexander

Фотография
Дата: 19.07.2011
Ответить


Exception поборол, в 3.2.6 будет это изменение.

Спасибо: Den

Den

Фотография
Дата: 07.08.2011
Ответить


Alexander: Exception поборол, в 3.2.6 будет это изменение. Спасибо большое! Теперь экспорт просто летает!!!

Спасибо:

vvt

Фотография
Дата: 08.08.2011
Ответить


Ура!!! Свершилось!!! Спасибо!!!

Спасибо:
<< < 4 5 6 

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy