Да я уж не стакан отображаю, а просто BestBid вывожу в TextEdit. все
равно задержка.
Делаю это так (.NET 2.0 стиль)
internal delegate void SetString(string str);
private SetString setStakanBid
public Form1()
{
InitializeComponent();
...
setStakanBid = setStakanBestBid;
}
void setStakanBestBid(string bid)
private void Form1_Load(object sender, EventArgs e)
{
.....
waitHandle.WaitOne();
waitHandle.Close();
trader.SecuritiesChanged += new
Action<IEnumerable>(trader_SecuritiesChanged);
trader.QuotesChanged += new
Action(trader_QuotesChanged);
}
void trader_QuotesChanged(MarketDepth obj)
{
if (obj.Security.Code == "LKOH")
{
if (edtStakanBestBid.InvokeRequired)
edtStakanBestBid.BeginInvoke(setStakanBid, new
object[] { obj.BestBid.Price.ToString() });
}
}
вроде особых накладных расходов не должно быть, но задержки все равно
наблюдаются.
а бид/аск из Инстроментов момент в момент выводятся.
Хотя ниже я в одной тееме прочитал что юзать MarketDepth
предпочтительнее и быстрее...