In today's world of advanced user interfaces, users are demanding more advance control of their applications. It is no longer acceptable to wind your way through menus to accomplish one task, only to be forced to unwind your way back to accomplish the next task. We now want the ability to perform any task whenever we feel like it, no matter where we happen to be inside the program.
We also want the ability to perform more than one task at a time. Consider the spreadsheet application; we might want to start a time consuming recalculation on one spreadsheet while we enter data into a second. In a word processor, we might want to print one document and repaginate a second while we enter text into a third. As users, these demands seem simple enough. Just give us a little more control. But as programmers, we realize that this type of control requires a very complex program design.
At least it did until now!
Enter the world of multithreaded programming, a technique that enables you to devide an application into multiple tasks (or threads), each of which executes independently from and simultaneously with other tasks. By using multiple tasks, it's very easy to build advanced control mechanisms into your applications. Context is automatically maintained as control jumps from one task to another. And any number of tasks can be executing in the background while the user interacts with a foreground task.
MULTI-C supports multithreaded programming through a portable library of C functions. This small and efficient library is compatible with C/C++ compilers from Mix, Borland, Microsoft and others. Because it contains no machine or environment specific code, the library may be used to develop applications for virtually any platform. To illustrate the power of Multi-C, we've included the complete source code for a video arcade game modeled after the original Space Invaders.
Multi-C is a portable library of C functions that supports the development of multithreaded applications. A multithreaded application is a program that contains multiple tasks (or threads), each of which executes intependently but in cooperation with the other tasks. Multi-C takes care of scheduling tasks for execution and switching control from one task to another. This effectively allows multiple tasks to execute simultaneously. Multi-C also contains a message facility that allows any task to send messages to any other tasks. Messages can be used to pass control from one task to another based on the occurrence of events (such as a mouse click). The message facility combined with task switching allows event driven applications to be implemented using more natural program design.
Any C or C++ programmer who wants to develop better working applications will reap major benefits from the use of Multi-C. Whether it's as simple as printing a file in the backround while continuing to interact with the user or as complex as providing a complete graphical user interface (GUI). Multi-C makes it easier to design and implement your applications. Because Multi-C provides more powerful controls for designing an application the application can provide users with better control of its operation. By dividing an application into independently executable tasks, it becomes easy to let control jump from one task to another. An example might be jumping from one document to another inside a word processing application. The end result is that your applications exhibit that do anything anytime behavior that most users now demand.