Simple Multithreading example in .NET and WPF

After lots of googling, trying to figure out how to multithread properly in .NET and modify a WPF GUI from another thread, I’ve finally figured a lot of stuff out.  I have created a simple multithreading example project in Visual C# 2008 Express.

WPF Multithreading demo app

You can download the project here, but since I know most people just want to get some quick answers, here’s a few code snippets:

Continue reading

Hey! Roomie isn’t dead either!

After completely rewriting FRI from scratch (and renaming it Arcadia), I have decided to rewrite my other big project, Roomie.  This absolutely needed to be done.  Roomie had some good functionality, but I had hit the limit for its extensibility.  Roomie’s engine was a monolithic blob of ugly code, with very little room to make it into a full scripting language with features like custom functions and if statements.  My redesign of Roomie, which I call RoomieRemake for now, is completely expandable, is properly multithreaded, and has all of the potential to be a robust, featurefull scripting language.  Just like Arcadia, I am proud to declare that RoomieRemake shares absolutely no code with its predecessor.  Not even a single copy/pasted line of code!  More on that in a bit, but first an end scenario:
Roomie Text Message

Continue reading

FRI is dead, but its spirit lives on

It’s been almost a year since I’ve updated FRI, my ROM library program. FRI is now officially dead, but not completely gone. Since I started working on FRI I have gained a lot more programming experience. I started writing the thing when I was still a C# novice. Between then and now I have written an elaborate intranet site in ASP.NET, debugged and written C++ applications, and have learned the true value of a regular expression.  I look at FRI’s code now and am a little grossed out.   I decided that if I was going to make any more improvements to FRI, I’d have to start over and rearchitect the whole thing. The name of this new project: Arcadia.

With Arcadia I have committed to research everything that I suspect will make for a better design. Because of this, Archaida’s backend is shaping up to be elegant and efficient. I researched how to do inheritance in C#, and have used that to save myself from writing a lot of code. This has drastically decreased development and testing time. I learned how to use basic regular expressions over the summer, and have used them in some areas (more on that later). For the frontend I decided to switch from WinForms to WPF. All I can say is that databinding is epic, and I still have a lot more to learn about it.

Here’s a shot of Arcadia in its current form:

Arcadia prealpha

Continue reading