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

Подключение к Quik и запуск DDE
Atom
1/24/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();
			}


Tags:


Thanks:


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

Avatar
Date: 7/18/2011
Reply


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

Thanks:

esper

Avatar
Date: 7/18/2011
Reply


Александр, можете попробовать собрать проект с такой вот функцией 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);
}
Thanks: Артем_2 Den

Артем_2

Avatar
Date: 7/18/2011
Reply


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

Thanks:

Alexander

Avatar
Date: 7/18/2011
Reply


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

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

Thanks:

Alexander

Avatar
Date: 7/18/2011
Reply


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

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

Thanks:

Артем_2

Avatar
Date: 7/19/2011
Reply


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

Thanks:

Alexander

Avatar
Date: 7/19/2011
Reply


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

Thanks: Den

Den

Avatar
Date: 8/7/2011
Reply


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

Thanks:

vvt

Avatar
Date: 8/8/2011
Reply


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

Thanks:
<< < 4 5 6 

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy