public unsafe void TickPassedAsPointer() { var stream = new TestTickStream(NumTicks); var tick = Tick.Empty; while (stream.MoveNext(ref tick)) { var tickPointer = new TickPointer(&tick); var x = Process(tickPointer, 0); } TickPointer Process(TickPointer tickPointer, int depth) { return(depth == MethodPassingDepth ? tickPointer : Process(tickPointer, depth + 1)); } }
public unsafe void AccessTickPointerMembers() { double price, bid, ask, volume; DateTime time; var tick = new Tick(1, 1, 1, 1, DateTime.Now); var tickPointer = new TickPointer(&tick); for (var i = 0; i < AccessCount; i++) { price = tickPointer.Price; bid = tickPointer.Bid; ask = tickPointer.Ask; volume = tickPointer.Volume; time = tickPointer.TimeStamp; } }