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 AnswerYou 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.