Sunday, December 14, 2003

Swiss DevDays Slides and Demos Uploaded

I’ve posted the slides and demos for my presentations at DevDays last week. You can find them here.  Here are the descriptions:

Multithreaded Programming in the CLR: The CLR provides full multithreading capabilities to programmers of all languages. This includes the ability to start threads, to stop them, and to safely communicate with them. In this session, we discussed both how to begin asynchronous processing, and how to safely share data between threads.

Introduction to Managed DirectX:  The DirectX library has for years provided C++ developers with the ability to closely interact with sound, video, input, and networking devices. The advent of Managed DirectX brings these same technologies to the C#/VB.NET/other managed language developer. In this session, we looked specifically at the basics of Managed Direct3D, Managed DirectSound, Managed DirectInput, and Managed DirectPlay, with an emphasis on how these technologies could be used in non-game applications.

If you’ve been reading my Direct3D Tutorial, you’ll probably find the latter set of demos particularly interesting, especially the Collider series of demos. It develops a simple but fairly realistic non-game application that models particle interaction. Through a series of demos, it evolves to use 3D graphics for display, 3D sound to report collisions, joystick input for navigation, and finally DirectPlay for distributed rendering.



  1. Craig,
    I found your on threading slides very interesting, but I noticed that you use the lock(typeof(Foo)) {} pattern. There's an article on MSDN ( referred to by Rico Mariani ( on why this is a bad idea. I used that myself until I read Rico's blog.

  2. Yeah, I recently realized that that was still in there myself. These slides are adapted from the DevelopMentor Guerilla.NET course, and the lock(typeof(X)) pattern is already scheduled to be removed there. But thanks for pointing this out - hopefully others will benefit from Rico's advice!