"Cannot use fixed local inside lambda expression"
Posted
by JulianR
on Stack Overflow
See other posts from Stack Overflow
or by JulianR
Published on 2010-05-13T00:57:19Z
Indexed on
2010/05/13
1:04 UTC
Read the original article
Hit count: 211
I have an XNA 3.0 project that compiled just fine in VS2008, but that gives compile errors in VS2010 (with XNA 4.0 CTP). The error:
Cannot use fixed local 'depthPtr' inside an anonymous method, lambda expression, or query expression
depthPtr
is a fixed float*
into an array, that is used inside a Parallel.For
lambda expression from System.Threading
. As I said, this compiled and ran just fine on VS2008, but it does not on VS2010, even when targeting .NET 3.5.
Has this changed in .NET 4.0, and even so, shouldn't it still compile when I choose .NET 3.5 as the target framework? Searching for the term "Cannot use fixed local" yields exactly one (useless) result, both in Google and Bing.
If this has changed, what is the reason for this? I can imagine capturing a fixed
pointer-type in a closure could get a bit weird, is that why? So I'm guessing this is bad practice? And before anyone asks: no, the use of pointers is not absolutely critical here. I would still like to know though :)
© Stack Overflow or respective owner