The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.
Don't have a printer, but have you tried the AutoDesk Viewer? It looks like it is free (with an account signup): Autodesk Viewer | Free Online File Viewer. It also looks like it can print to a regular printer, but I'm not sure about that.
I could write an entire article p() and v() Considered Harmful. Just as the use of goto should usually be restricted to the compiler, thread safety should usually be restricted to a few places by using cooperative scheduling (running work to completion). Willy-nilly preemptive scheduling is an abomination that causes artificial complexity, polluting the code with stuff that has nothing to do with the specifications.
Yes, I'm a big fan of cooperative threading. I haven't worked in C#, but I'd guess that yield() does the same thing as what I call Pause() in my code.
Symmetric multiprocessing (SMP) is another abomination because it reintroduces the need for all this thread safety nonsense. It is lamentable that Intel ran contests on how to adapt software to these platforms. SMP is a case of the hardware team having fun at the expense of the software team, which we all know is backwards from how things should be!
I also look at it this way, that there are only three good numbers: 0, 1, and infinity. So if I need more than one core, will 2, 4, or 8 always be enough? The general solution is to design software that runs in a distributed (networked) manner. This adds artificial complexity of its own, but it's the truly scalable solution and is unavoidable if you need an arbitrary amount of horsepower. The resulting software can also run on an SMP platform by dividing the shared memory so that each core has its own sandbox, with shared memory perhaps being used only for efficient interprocessor messaging.
each time it encounters a yield return it returns from the function. The next time the function is called essentially it will start after that yield return statement at the next line.
This voodoo is accomplished using a state machine the compiler builds for you.
So each time the routine is called, it knows what state it's in and can execute the next instruction.
So in your cooperative multithreading code. you'd just loop over whatever you needed to loop over, and time is returned to your function because the yield return dropped you out of the function in the "middle of the call"
it's a lot easier to use than to explain, but it helps if you have familiarity with the concept of a coroutine first.
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
Interesting and not what I expected. Many folks couldn't be bothered to write a state machine, so we get blocking RPCs. And why do we get an hourglass or little spinning wheel on the screen? It's because some wanker couldn't be bothered to write a state machine!
So I'm curious as to what kind of state machine this generates. It picks up where it left off, but a serious state machine handles any input that could arrive. I'm guessing that this blocks, which is OK sometimes (guaranteed low latency) but not others (waiting for a reply from another processor). It's the latter case that can put a little spinning wheel on the screen for an unbecoming length of time, which is loathsome.
And I thought that C++ was a kitchen-sink language!
That said, good on them that they allow other inputs. Not that I care for RPCs. But if this is in the thread's entry function, it's not much different than accepting any message that could arrive, so it looks like the kind of thing I'd aim for.
I do chicken chunks as well - 2.5hr @ 65C
I bulk buy chicken breasts and trim them to 125g or so: the breasts get frozen, the trimmings get Sous Vide then packed in 100g or so bags for the freezer. Then when I want a quick curry, stir fry, or whatever, it's just defrost and it's ready to go.
It's good for fruit as well - rhubarb works well, as does pineapple.
What kind of bags / vacuum system are you using? I started with ziplock, but they were a pain (and couldn't be reused) so I moved to embossed rolls and an "external" pump machine, then moved to a chamber vacuum with "plain" bags this year. Definitely prefer the chamber vac, but it's going to be a few years before it pays for itself in reduced plastic costs!
Sent from my Amstrad PC 1640 Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
Last Visit: 31-Dec-99 18:00 Last Update: 18-Jun-21 13:55