So I’ve been messing around with Generics and Reflection in C# this week. I’m busy writing something that’s going to support a plugin system so that the same core can be used for multiple clients.
But my question is where can I learn more about this kind of stuff? While the basics can easily be picked up from the net and through a bit of experimentation. (I’ve found the best sources of info to be many of the msdn blogs…) I’m not sure how to solve weirder issues in my design like what happens if certain parts of the application become multi-threaded? I’ve got to come up with a way to process more things “at once” in the system so a multi-threaded solution seems to be the best way to go. This is very hard when you have a 40hour time scale to complete and test the whole “core” system.
So any suggestions of where to look for more info would be greatly appreciated along with any hints on slowing down time and no sleep less is not a good enough as
Well Threading in itself is pretty broad (and complicated) category. For several months now I’ve been working on a multi-threaded app and the only classes I’ve seen fit to use are the following:
Thread (obviously)
AutoResetEvent
ManualResetEvent
lock (statement)
Monitor
ReaderWriterLock
ThreadPool (cool when used with reset events)
I didn’t know anything about Threading when I started and pretty much picked up everything I know from a guru at work and MSDN blogs.
Basically, all I know can be summarized to:
Never sleep when you can use signals
Lock objects for the smallest amount of time
Avoid locking at too low a level
Logging over stepping-through code
And that’s pretty much it. Still got a lot to learn :P.