Am 16.05.2014 17:45, schrieb Craig Peterson: > > 1) I want to use the OmniThreadLibrary. Setting up objects and thread > descendents is fine in moderation, but it's too much of a hassle when > you just want a quick parallel for loop.
Isn't using anonymous methods in this case only a work around for missing OpenMP support? > > To solve that, years ago we started using cooperative threads > (coroutines/fibers) in our GUI thread. I re-implemented ShowModal so it > handles the details internally. When you call it it displays the > dialog, just like the ShowModalNonBlocking() call would, but then > switches to another "thread" that processes messages. When the dialog > is finally closed the running thread switches back to the ShowModal > call, which then exits like normal. As a result, even though we can > have several independent modal dialogs up at once, the code is all > identical to the first example. Everything is nicely encapsulated and > sharing state before and after the dialog is trivial. > > Unfortunately, fibers introduce incompatibilities on both Windows and OS > X, and are deprecated on OS X, so we need to stop using them. They are > by far the cleanest approach, and I'd keep using them if I had any > choice whatsoever. > > The second best alternative is to use closures and anonymous methods. I still don't get how closures/anonymous methods help you to get rid of fibers? I mean, anonymous methods are only a short cut; closures allow you to capture the state of the variables of the outer scope even if the outer scope is left. But that's it? _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal