will some programs and some may be incompatible if i buy a multicore processor

No.

(I don't know of any examples of normal programs not being able to run on a multi-core processor.)

what happens if i have no multicore processing and i upgrade to .net 4.

**Short Answer**You won't be able to tell any difference.

**Long Answer**.NET 4 simply allows the developer to add multi-core support.

Here's an example of how it works:

If the program is looping through each planet/body and calculating the forces on each it might look like this:

`For each Body`

Calculate the forces on the Body

Next Body

If you had 4 bodies (Earth, Moon, Jupiter, Sun) the program would take 4 steps to complete this:

Step 1 - Calculate the forces on Earth

Step 2 - Calculate the forces on Moon

Step 3 - Calculate the forces on Jupiter

Step 4 - Calculate the forces on Sun

The awesome advantage of .NET 4 is that the developer (me) can easily take the 4 steps and spread the tasks across as many processors as you have.

If you have 2 processors it would be able to process 2 steps at once:

Processor 1

Step 1 - Calculate the forces on Earth

Step 2 - Calculate the forces on Jupiter

Processor 2

Step 1 - Calculate the forces on Moon

Step 2 - Calculate the forces on Sun

If you had 4 processors (and 4 tasks) it could calculate all the forces simultaneously.

Processor 1

Step 1 - Calculate the forces on Earth

Processor 2

Step 1 - Calculate the forces on Jupiter

Processor 3

Step 1 - Calculate the forces on Moon

Processor 4

Step 1 - Calculate the forces on Sun

And if you only have a single processor it will just step through each body on the single processor taking 4 steps.