Closed GoogleCodeExporter closed 9 years ago
Yes, we know. It is documented and it was intended design.
Original comment by andrew.k...@gmail.com
on 2 Mar 2010 at 8:01
Couldn't you add a bool to NewFrameEventArgs that controls whether the frame is
disposed after the event handler, set to true by default?
Original comment by chpatr...@gmail.com
on 4 Mar 2010 at 11:23
You simply don't think about global picture ...
As you know, we may have 2 or more clients listening for event. So when event
is
fired all their event handlers are invoked. In this case who will be
responsible for
disposing? With bool it does not get better, but maybe even worse. One will set
bool
to true (dispose), another will set to false (not dispose), but it will crash
anyway. If both set bool to false (like the case without bool), then who will
dispose? If one disposes, then another will crash because he still uses it. If
nobody, then garbage in memory.
Original comment by andrew.k...@gmail.com
on 5 Mar 2010 at 8:04
I see. Thanks anyway.
Original comment by chpatr...@gmail.com
on 5 Mar 2010 at 9:37
Actually, I'm sorry to bother you, but how about this?
in NewFrameEventArgs:
...
private bool disposeFrame = true;
public bool DisposeFrame
{
get
{
return disposeFrame;
}
}
public void RequestKeepFrame()
{
lock (disposeFrame) {disposeFrame = false};
}
...
This way handlers that want to keep the frame for later can call
e.RequestKeepFrame()
and ones who don't won't have to worry about it.
Original comment by chpatr...@gmail.com
on 5 Mar 2010 at 8:45
But what is the difference with the suggestion before? Suppose this scenario.
Two
clients call RequestKeepFrame(), so video source does not dispose frame. Who
will
dispose the frame then and at what point of time? If nobody, then it means
garbage
will grow quickly. If first client will dispose it, then second may crash if it
did
not complete its work yet.
Original comment by andrew.k...@gmail.com
on 7 Mar 2010 at 10:55
Original issue reported on code.google.com by
chpatr...@gmail.com
on 1 Mar 2010 at 11:16